提交 fc02815e authored 作者: mooncake's avatar mooncake

update

上级 ff4eee31
......@@ -13,14 +13,13 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/global"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/eventbus"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/ips"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/stat"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/tracer"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/rd/nacos"
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"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/app"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
......@@ -29,8 +28,8 @@ import (
)
func init() {
eventbus.Eb.Subscribe(eventbus.TopicParseConf, func(ctx context.Context) {
parseInit()
eventbus.Eb.Subscribe(eventbus.TopicParseConf, func(ctx context.Context, node int) {
parseInit(node)
})
eventbus.Eb.Subscribe(eventbus.TopicLoggerInit, func(ctx context.Context) {
if err := initLogger(config.Cfg); err != nil {
......@@ -57,7 +56,7 @@ func init() {
})
}
func parseInit() {
func parseInit(node int) {
if confType, ok := os.LookupEnv("CONF_TYPE"); (ok && sliceutils.NotContains([]string{"local", "nacos", "consul"}, confType)) || !ok {
return
}
......@@ -67,18 +66,20 @@ func parseInit() {
}
logger.Info("[conf] parse conf finish.")
if err := xsf.Init(); err != nil {
if err := sf.Init(node); err != nil {
logger.Fatal(err.Error())
}
logger.Info("[xsf] initialized.")
if err := idutils.Init(); err != nil {
logger.Fatal(err.Error())
}
// logger.Info("[xsf] initialized.")
// if err := idutils.Init(); err != nil {
// logger.Fatal(err.Error())
// }
logger.Info("[idutils] initialized.")
}
type Application struct {
node int
app *app.App
router func() *gin.Engine
}
......@@ -87,7 +88,7 @@ func (x *Application) Run() {
defer goutils.Recover()
ctx := context.TODO()
eventbus.Eb.Publish(ctx, eventbus.TopicParseConf)
eventbus.Eb.Publish(ctx, eventbus.TopicParseConf, x.node)
eventbus.Eb.Publish(ctx, eventbus.TopicParseConfFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicLoggerInit)
eventbus.Eb.Publish(ctx, eventbus.TopicLoggerInitFinish)
......@@ -115,7 +116,7 @@ func (x *Application) Run() {
func (x *Application) Prepare() {
defer goutils.Recover()
ctx := context.TODO()
eventbus.Eb.Publish(ctx, eventbus.TopicParseConf)
eventbus.Eb.Publish(ctx, eventbus.TopicParseConf, x.node)
eventbus.Eb.Publish(ctx, eventbus.TopicParseConfFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicLoggerInit)
eventbus.Eb.Publish(ctx, eventbus.TopicLoggerInitFinish)
......@@ -133,12 +134,13 @@ func (x *Application) Prepare() {
eventbus.Eb.Publish(ctx, eventbus.TopicPrintSwagger)
}
func New() *Application {
return &Application{}
func New(node int) *Application {
return &Application{node: node}
}
func NewWithRouter(router func() *gin.Engine) *Application {
func NewWithRouter(node int, router func() *gin.Engine) *Application {
return &Application{
node: node,
router: router,
}
}
......
......@@ -128,9 +128,9 @@ type Config struct {
Content []byte `yaml:"-" json:"-"`
}
type Snowflake struct {
Node int `yaml:"node" json:"node" mapstructure:"node"`
}
// type Snowflake struct {
// Node int `yaml:"node" json:"node" mapstructure:"node"`
// }
// 选择哪个配置中心
type ConfCenter struct {
......@@ -243,7 +243,7 @@ type App struct {
PodName string `yaml:"-" json:"podName" mapstructure:"podName"`
WebLog WebLog `yaml:"webLog" json:"webLog" mapstructure:"webLog"`
Email Email `yaml:"email" json:"email" mapstructure:"email"`
IDGeneration IDGeneration `yaml:"idGeneration" json:"idGeneration" mapstructure:"idGeneration"`
// IDGeneration IDGeneration `yaml:"idGeneration" json:"idGeneration" mapstructure:"idGeneration"`
}
type Middleware struct {
......@@ -266,11 +266,11 @@ type RequestID struct {
Key string `yaml:"key" json:"key" mapstructure:"key"`
}
type IDGeneration struct {
Type string `yaml:"type" json:"type" mapstructure:"type"` // snowflake or leaf
Leaf Leaf `yaml:"leaf" json:"leaf" mapstructure:"leaf"`
Snowflake Snowflake `yaml:"snowflake" json:"snowflake" mapstructure:"snowflake"`
}
// type IDGeneration struct {
// Type string `yaml:"type" json:"type" mapstructure:"type"` // snowflake or leaf
// Leaf Leaf `yaml:"leaf" json:"leaf" mapstructure:"leaf"`
// Snowflake Snowflake `yaml:"snowflake" json:"snowflake" mapstructure:"snowflake"`
// }
type WebLog struct {
Enable bool `yaml:"enable" json:"enable" mapstructure:"enable"`
......
......@@ -41,14 +41,6 @@ app:
readTimeout: 2
writeTimeout: 2
hideSensitiveFields: "smtpPassword"
idGeneration:
type: leaf # snowflake leaf
leaf:
addr: http://leaf.qitu
showLog: true
retryCount: 2
snowflake:
node: 1
http:
port: 8080
......
......@@ -7,8 +7,8 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/jwt"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
ctxutils "gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
const (
......@@ -95,7 +95,7 @@ func Auth(opts ...JwtOption) gin.HandlerFunc {
return
}
} else {
xsfID, _ := xsf.ParseString(claims.UID)
xsfID, _ := sf.ParseString(claims.UID)
c.Set(ctxutils.KeyUID, xsfID)
c.Set(ctxutils.KeyUName, claims.Name)
}
......
......@@ -4,8 +4,8 @@ import (
"math"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
const (
......@@ -13,7 +13,7 @@ const (
)
var (
LastIDMax = xsf.ParseInt64(math.MaxInt64)
LastIDMax = sf.ParseInt64(math.MaxInt64)
)
type Params struct {
......@@ -35,7 +35,7 @@ type Conditions struct {
}
type BaseIDReq struct {
ID xsf.ID `json:"id" comment:"id" encomment:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` // id
ID sf.ID `json:"id" comment:"id" encomment:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` // id
}
func (x *BaseIDReq) Valid() error {
......@@ -46,7 +46,7 @@ func (x *BaseIDReq) Valid() error {
}
type BaseIDsReq struct {
IDs []xsf.ID `json:"ids" comment:"ids" encomment:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1" binding:"min=1"` // id list
IDs []sf.ID `json:"ids" comment:"ids" encomment:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1" binding:"min=1"` // id list
}
func (x BaseIDsReq) Valid() error {
......@@ -57,7 +57,7 @@ func (x BaseIDsReq) Valid() error {
}
type GetByLastIDReq struct {
LastID xsf.ID `json:"lastID" form:"lastID" validate:"required" example:"10086"` // 最后一个id
LastID sf.ID `json:"lastID" form:"lastID" validate:"required" example:"10086"` // 最后一个id
Limit int `json:"limit" form:"limit" validate:"required" example:"1000"` // 限制数量
Sort string `json:"sort" form:"sort" example:"id asc"` // 排序
}
......@@ -66,7 +66,7 @@ func (x *GetByLastIDReq) Valid() error {
return nil
}
func (r *GetByLastIDReq) GetLastID() xsf.ID {
func (r *GetByLastIDReq) GetLastID() sf.ID {
if r.LastID <= 0 {
r.LastID = LastIDMax
}
......
......@@ -2,24 +2,24 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type Email struct {
models.Email
xcommon.CommonBiz[xsf.ID, models.Email, Email]
xcommon.CommonBiz[sf.ID, models.Email, Email]
}
var EmailTool = &Email{}
func (*Email) GetIDs(rs []*Email) []xsf.ID {
return sliceutils.GetIDs[xsf.ID](rs)
func (*Email) GetIDs(rs []*Email) []sf.ID {
return sliceutils.GetIDs[sf.ID](rs)
}
func (x *Email) GetTplIDs(rs []*Email) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *Email) GetTplIDs(rs []*Email) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetTplID())
}
......
......@@ -2,24 +2,24 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type EmailReceiver struct {
models.EmailReceiver
xcommon.CommonBiz[xsf.ID, models.EmailReceiver, EmailReceiver]
xcommon.CommonBiz[sf.ID, models.EmailReceiver, EmailReceiver]
}
var EmailReceiverTool = &EmailReceiver{}
func (*EmailReceiver) GetIDs(rs []*EmailReceiver) []xsf.ID {
return sliceutils.GetIDs[xsf.ID](rs)
func (*EmailReceiver) GetIDs(rs []*EmailReceiver) []sf.ID {
return sliceutils.GetIDs[sf.ID](rs)
}
func (x *EmailReceiver) GetEmailIDs(rs []*EmailReceiver) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailReceiver) GetEmailIDs(rs []*EmailReceiver) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetEmailID())
}
......
......@@ -2,24 +2,24 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type EmailSend struct {
models.EmailSend
xcommon.CommonBiz[xsf.ID, models.EmailSend, EmailSend]
xcommon.CommonBiz[sf.ID, models.EmailSend, EmailSend]
}
var EmailSendTool = &EmailSend{}
func (*EmailSend) GetIDs(rs []*EmailSend) []xsf.ID {
return sliceutils.GetIDs[xsf.ID](rs)
func (*EmailSend) GetIDs(rs []*EmailSend) []sf.ID {
return sliceutils.GetIDs[sf.ID](rs)
}
func (x *EmailSend) GetEmailIDs(rs []*EmailSend) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailSend) GetEmailIDs(rs []*EmailSend) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetEmailID())
}
......
......@@ -2,24 +2,24 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type EmailSendLog struct {
models.EmailSendLog
xcommon.CommonBiz[xsf.ID, models.EmailSendLog, EmailSendLog]
xcommon.CommonBiz[sf.ID, models.EmailSendLog, EmailSendLog]
}
var EmailSendLogTool = &EmailSendLog{}
func (*EmailSendLog) GetIDs(rs []*EmailSendLog) []xsf.ID {
return sliceutils.GetIDs[xsf.ID](rs)
func (*EmailSendLog) GetIDs(rs []*EmailSendLog) []sf.ID {
return sliceutils.GetIDs[sf.ID](rs)
}
func (x *EmailSendLog) GetEmailSendIDs(rs []*EmailSendLog) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailSendLog) GetEmailSendIDs(rs []*EmailSendLog) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetEmailSendID())
}
......
......@@ -2,20 +2,20 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type EmailTpl struct {
models.EmailTpl
xcommon.CommonBiz[xsf.ID, models.EmailTpl, EmailTpl]
xcommon.CommonBiz[sf.ID, models.EmailTpl, EmailTpl]
}
var EmailTplTool = &EmailTpl{}
func (*EmailTpl) GetIDs(rs []*EmailTpl) []xsf.ID {
return sliceutils.GetIDs[xsf.ID](rs)
func (*EmailTpl) GetIDs(rs []*EmailTpl) []sf.ID {
return sliceutils.GetIDs[sf.ID](rs)
}
func (EmailTpl) NewFromModel(m *models.EmailTpl) *EmailTpl {
......
......@@ -2,24 +2,24 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type EmailTplReceiver struct {
models.EmailTplReceiver
xcommon.CommonBiz[xsf.ID, models.EmailTplReceiver, EmailTplReceiver]
xcommon.CommonBiz[sf.ID, models.EmailTplReceiver, EmailTplReceiver]
}
var EmailTplReceiverTool = &EmailTplReceiver{}
func (*EmailTplReceiver) GetIDs(rs []*EmailTplReceiver) []xsf.ID {
return sliceutils.GetIDs[xsf.ID](rs)
func (*EmailTplReceiver) GetIDs(rs []*EmailTplReceiver) []sf.ID {
return sliceutils.GetIDs[sf.ID](rs)
}
func (x *EmailTplReceiver) GetTplIDs(rs []*EmailTplReceiver) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailTplReceiver) GetTplIDs(rs []*EmailTplReceiver) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetTplID())
}
......
......@@ -2,9 +2,10 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailDao struct {
......@@ -13,14 +14,14 @@ type emailDao struct {
var EmailDao = &emailDao{}
func (x *emailDao) GetSliceByTplID(ctx context.Context, order string, tplID xsf.ID) ([]*models.Email, error) {
func (x *emailDao) GetSliceByTplID(ctx context.Context, order string, tplID sf.ID) ([]*models.Email, error) {
if tplID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "tpl_id = ?", tplID)
}
func (x *emailDao) GetSliceByTplIDs(ctx context.Context, order string, tplIDs []xsf.ID) ([]*models.Email, error) {
func (x *emailDao) GetSliceByTplIDs(ctx context.Context, order string, tplIDs []sf.ID) ([]*models.Email, error) {
if len(tplIDs) == 0 {
return nil, nil
}
......@@ -31,7 +32,7 @@ func (x *emailDao) GetSliceByTplIDs(ctx context.Context, order string, tplIDs []
return emails, nil
}
func (x *emailDao) GetMapSliceByTplIDs(ctx context.Context, order string, tplIDs []xsf.ID) (map[xsf.ID][]*models.Email, int, error) {
func (x *emailDao) GetMapSliceByTplIDs(ctx context.Context, order string, tplIDs []sf.ID) (map[sf.ID][]*models.Email, int, error) {
if len(tplIDs) == 0 {
return nil, 0, nil
}
......@@ -39,7 +40,7 @@ func (x *emailDao) GetMapSliceByTplIDs(ctx context.Context, order string, tplIDs
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.Email)
itemMap := make(map[sf.ID][]*models.Email)
for _, record := range emails {
itemMap[record.TplID] = append(itemMap[record.TplID], record)
}
......
......@@ -2,9 +2,10 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailReceiverDao struct {
......@@ -13,14 +14,14 @@ type emailReceiverDao struct {
var EmailReceiverDao = &emailReceiverDao{}
func (x *emailReceiverDao) GetSliceByEmailID(ctx context.Context, order string, emailID xsf.ID) ([]*models.EmailReceiver, error) {
func (x *emailReceiverDao) GetSliceByEmailID(ctx context.Context, order string, emailID sf.ID) ([]*models.EmailReceiver, error) {
if emailID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "email_id = ?", emailID)
}
func (x *emailReceiverDao) GetSliceByEmailIDs(ctx context.Context, order string, emailIDs []xsf.ID) ([]*models.EmailReceiver, error) {
func (x *emailReceiverDao) GetSliceByEmailIDs(ctx context.Context, order string, emailIDs []sf.ID) ([]*models.EmailReceiver, error) {
if len(emailIDs) == 0 {
return nil, nil
}
......@@ -31,7 +32,7 @@ func (x *emailReceiverDao) GetSliceByEmailIDs(ctx context.Context, order string,
return emailReceivers, nil
}
func (x *emailReceiverDao) GetMapSliceByEmailIDs(ctx context.Context, order string, emailIDs []xsf.ID) (map[xsf.ID][]*models.EmailReceiver, int, error) {
func (x *emailReceiverDao) GetMapSliceByEmailIDs(ctx context.Context, order string, emailIDs []sf.ID) (map[sf.ID][]*models.EmailReceiver, int, error) {
if len(emailIDs) == 0 {
return nil, 0, nil
}
......@@ -39,7 +40,7 @@ func (x *emailReceiverDao) GetMapSliceByEmailIDs(ctx context.Context, order stri
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.EmailReceiver)
itemMap := make(map[sf.ID][]*models.EmailReceiver)
for _, record := range emailReceivers {
itemMap[record.EmailID] = append(itemMap[record.EmailID], record)
}
......
......@@ -2,10 +2,11 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailSendDao struct {
......@@ -42,14 +43,14 @@ func (x *emailSendDao) GetMapSliceByStates(ctx context.Context, order string, st
}
return emailSendMapSlice, len(emailSends), nil
}
func (x *emailSendDao) GetSliceByEmailID(ctx context.Context, order string, emailID xsf.ID) ([]*models.EmailSend, error) {
func (x *emailSendDao) GetSliceByEmailID(ctx context.Context, order string, emailID sf.ID) ([]*models.EmailSend, error) {
if emailID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "email_id = ?", emailID)
}
func (x *emailSendDao) GetSliceByEmailIDs(ctx context.Context, order string, emailIDs []xsf.ID) ([]*models.EmailSend, error) {
func (x *emailSendDao) GetSliceByEmailIDs(ctx context.Context, order string, emailIDs []sf.ID) ([]*models.EmailSend, error) {
if len(emailIDs) == 0 {
return nil, nil
}
......@@ -60,7 +61,7 @@ func (x *emailSendDao) GetSliceByEmailIDs(ctx context.Context, order string, ema
return emailSends, nil
}
func (x *emailSendDao) GetMapSliceByEmailIDs(ctx context.Context, order string, emailIDs []xsf.ID) (map[xsf.ID][]*models.EmailSend, int, error) {
func (x *emailSendDao) GetMapSliceByEmailIDs(ctx context.Context, order string, emailIDs []sf.ID) (map[sf.ID][]*models.EmailSend, int, error) {
if len(emailIDs) == 0 {
return nil, 0, nil
}
......@@ -68,7 +69,7 @@ func (x *emailSendDao) GetMapSliceByEmailIDs(ctx context.Context, order string,
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.EmailSend)
itemMap := make(map[sf.ID][]*models.EmailSend)
for _, record := range emailSends {
itemMap[record.EmailID] = append(itemMap[record.EmailID], record)
}
......
......@@ -2,10 +2,11 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailSendLogDao struct {
......@@ -25,14 +26,14 @@ func (x *emailSendLogDao) GetSliceByStates(ctx context.Context, order string, st
return x.GetOrderSliceByWhere(ctx, order, "state IN (?)", states)
}
func (x *emailSendLogDao) GetSliceByEmailSendID(ctx context.Context, order string, emailSendID xsf.ID) ([]*models.EmailSendLog, error) {
func (x *emailSendLogDao) GetSliceByEmailSendID(ctx context.Context, order string, emailSendID sf.ID) ([]*models.EmailSendLog, error) {
if emailSendID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "email_send_id = ?", emailSendID)
}
func (x *emailSendLogDao) GetSliceByEmailSendIDs(ctx context.Context, order string, emailSendIDs []xsf.ID) ([]*models.EmailSendLog, error) {
func (x *emailSendLogDao) GetSliceByEmailSendIDs(ctx context.Context, order string, emailSendIDs []sf.ID) ([]*models.EmailSendLog, error) {
if len(emailSendIDs) == 0 {
return nil, nil
}
......@@ -43,7 +44,7 @@ func (x *emailSendLogDao) GetSliceByEmailSendIDs(ctx context.Context, order stri
return emailSendLogs, nil
}
func (x *emailSendLogDao) GetMapSliceByEmailSendIDs(ctx context.Context, order string, emailSendIDs []xsf.ID) (map[xsf.ID][]*models.EmailSendLog, int, error) {
func (x *emailSendLogDao) GetMapSliceByEmailSendIDs(ctx context.Context, order string, emailSendIDs []sf.ID) (map[sf.ID][]*models.EmailSendLog, int, error) {
if len(emailSendIDs) == 0 {
return nil, 0, nil
}
......@@ -51,7 +52,7 @@ func (x *emailSendLogDao) GetMapSliceByEmailSendIDs(ctx context.Context, order s
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.EmailSendLog)
itemMap := make(map[sf.ID][]*models.EmailSendLog)
for _, record := range emailSendLogs {
itemMap[record.EmailSendID] = append(itemMap[record.EmailSendID], record)
}
......
......@@ -2,9 +2,10 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailTplReceiverDao struct {
......@@ -13,14 +14,14 @@ type emailTplReceiverDao struct {
var EmailTplReceiverDao = &emailTplReceiverDao{}
func (x *emailTplReceiverDao) GetSliceByTplID(ctx context.Context, order string, tplID xsf.ID) ([]*models.EmailTplReceiver, error) {
func (x *emailTplReceiverDao) GetSliceByTplID(ctx context.Context, order string, tplID sf.ID) ([]*models.EmailTplReceiver, error) {
if tplID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "tpl_id = ?", tplID)
}
func (x *emailTplReceiverDao) GetSliceByTplIDs(ctx context.Context, order string, tplIDs []xsf.ID) ([]*models.EmailTplReceiver, error) {
func (x *emailTplReceiverDao) GetSliceByTplIDs(ctx context.Context, order string, tplIDs []sf.ID) ([]*models.EmailTplReceiver, error) {
if len(tplIDs) == 0 {
return nil, nil
}
......@@ -31,7 +32,7 @@ func (x *emailTplReceiverDao) GetSliceByTplIDs(ctx context.Context, order string
return emailTplReceivers, nil
}
func (x *emailTplReceiverDao) GetMapSliceByTplIDs(ctx context.Context, order string, tplIDs []xsf.ID) (map[xsf.ID][]*models.EmailTplReceiver, int, error) {
func (x *emailTplReceiverDao) GetMapSliceByTplIDs(ctx context.Context, order string, tplIDs []sf.ID) (map[sf.ID][]*models.EmailTplReceiver, int, error) {
if len(tplIDs) == 0 {
return nil, 0, nil
}
......@@ -39,7 +40,7 @@ func (x *emailTplReceiverDao) GetMapSliceByTplIDs(ctx context.Context, order str
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.EmailTplReceiver)
itemMap := make(map[sf.ID][]*models.EmailTplReceiver)
for _, record := range emailTplReceivers {
itemMap[record.TplID] = append(itemMap[record.TplID], record)
}
......
......@@ -15,10 +15,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/service"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gorm.io/gorm"
"gopkg.in/gomail.v2"
......@@ -126,7 +125,7 @@ var OEmail = &oEmail{}
type Params struct {
UType int
UID xsf.ID
UID sf.ID
TplCode string
TplParams map[string]string
Attachments []*config.Attachment
......@@ -166,7 +165,7 @@ func (x *oEmail) SendTLS(ctx context.Context, in *Params) (err error) {
from := fmt.Sprintf("%s<%s>", config.Cfg.Alias, config.Cfg.Addr)
email := models.Email{}
email.ID = xsfutils.EmailID(ctx)
email.ID = sf.GenerateID()
email.TplID = et.ID
email.UType = in.UType
email.UID = in.UID
......@@ -199,12 +198,12 @@ func (x *oEmail) SendTLS(ctx context.Context, in *Params) (err error) {
}
emailSend := models.EmailSend{}
emailSend.ID = xsfutils.EmailSendID(ctx)
emailSend.ID = sf.GenerateID()
emailSend.EmailID = email.ID
emailSend.State = enums.EmailSend_State_Wait
emailSendLog := models.EmailSendLog{}
emailSendLog.ID = xsfutils.EmailSendLogID(ctx)
emailSendLog.ID = sf.GenerateID()
emailSendLog.EmailSendID = emailSend.ID
emailSendLog.State = emailSend.State
......
package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// Email 邮件
type Email struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
UID xsf.ID `json:"uid" form:"uid" swaggertype:"string" gorm:"column:uid;type:bigint(20);comment:uid" example:"1" csv:"uid"` //uid
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
UID sf.ID `json:"uid" form:"uid" swaggertype:"string" gorm:"column:uid;type:bigint(20);comment:uid" example:"1" csv:"uid"` //uid
UType int `json:"utype" form:"utype" gorm:"column:utype;type:int(11);comment:utype" example:"1" csv:"utype"` //utype
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" gorm:"column:tpl_id;type:bigint(20);comment:模板id" example:"1" csv:"模板id"` //模板id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" gorm:"column:tpl_id;type:bigint(20);comment:模板id" example:"1" csv:"模板id"` //模板id
From string `json:"from" form:"from" gorm:"column:from;type:varchar(255);comment:发件人" example:"月饼<mooncake2026@163.com>" csv:"发件人"` //发件人
Subject string `json:"subject" form:"subject" gorm:"column:subject;type:varchar(255);comment:主题" example:"验证码" csv:"主题"` //主题
Content string `json:"content" form:"content" gorm:"column:content;type:text;comment:邮件内容" example:"<div>hello moon! </div>" csv:"邮件内容"` //邮件内容
......@@ -26,14 +26,14 @@ func (Email) TableName() string {
return TBEmail
}
func (x Email) GetID() xsf.ID {
func (x Email) GetID() sf.ID {
return x.ID
}
func (x *Email) GetTplID() xsf.ID {
func (x *Email) GetTplID() sf.ID {
return x.TplID
}
func (x *Email) GetTplIDs(rs []*Email) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *Email) GetTplIDs(rs []*Email) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetTplID())
}
......
package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// EmailReceiver 邮件收件人
type EmailReceiver struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" gorm:"column:email_id;type:bigint(20);comment:邮件id" example:"1" csv:"邮件id"` //邮件id
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" gorm:"column:email_id;type:bigint(20);comment:邮件id" example:"1" csv:"邮件id"` //邮件id
Receiver string `json:"receiver" form:"receiver" gorm:"column:receiver;type:varchar(255);comment:收件人" example:"月饼<mooncake2026@163.com>" csv:"收件人"` //收件人
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2024-03-27 17:11:00" csv:"创建时间"` //创建时间
UpdatedAt xtime.DateTime `json:"updatedAt" form:"updatedAt" gorm:"column:updated_at;type:datetime;comment:更新时间" example:"2024-03-27 17:11:00" csv:"更新时间"` //更新时间
......@@ -22,14 +22,14 @@ func (EmailReceiver) TableName() string {
return TBEmailReceiver
}
func (x EmailReceiver) GetID() xsf.ID {
func (x EmailReceiver) GetID() sf.ID {
return x.ID
}
func (x *EmailReceiver) GetEmailID() xsf.ID {
func (x *EmailReceiver) GetEmailID() sf.ID {
return x.EmailID
}
func (x *EmailReceiver) GetEmailIDs(rs []*EmailReceiver) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailReceiver) GetEmailIDs(rs []*EmailReceiver) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetEmailID())
}
......
......@@ -2,16 +2,16 @@ package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// EmailSend 邮件发送
type EmailSend struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" gorm:"column:email_id;type:bigint(20);comment:邮件id" example:"1" csv:"邮件id"` //邮件id
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" gorm:"column:email_id;type:bigint(20);comment:邮件id" example:"1" csv:"邮件id"` //邮件id
State enums.EmailSend_State_Enum `json:"state" form:"state" gorm:"column:state;type:tinyint(4);default:1;comment:发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]" example:"1" csv:"发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]"` //发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2024-03-27 17:11:00" csv:"创建时间"` //创建时间
UpdatedAt xtime.DateTime `json:"updatedAt" form:"updatedAt" gorm:"column:updated_at;type:datetime;comment:更新时间" example:"2024-03-27 17:11:00" csv:"更新时间"` //更新时间
......@@ -23,14 +23,14 @@ func (EmailSend) TableName() string {
return TBEmailSend
}
func (x EmailSend) GetID() xsf.ID {
func (x EmailSend) GetID() sf.ID {
return x.ID
}
func (x *EmailSend) GetEmailID() xsf.ID {
func (x *EmailSend) GetEmailID() sf.ID {
return x.EmailID
}
func (x *EmailSend) GetEmailIDs(rs []*EmailSend) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailSend) GetEmailIDs(rs []*EmailSend) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetEmailID())
}
......
......@@ -2,16 +2,16 @@ package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// EmailSendLog 邮件发送记录
type EmailSendLog struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" gorm:"column:email_send_id;type:bigint(20);comment:邮件发送id" example:"1" csv:"邮件发送id"` //邮件发送id
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" gorm:"column:email_send_id;type:bigint(20);comment:邮件发送id" example:"1" csv:"邮件发送id"` //邮件发送id
State enums.EmailSend_State_Enum `json:"state" form:"state" gorm:"column:state;type:tinyint(4);default:1;comment:发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]" example:"1" csv:"发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]"` //发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2024-03-27 17:11:00" csv:"创建时间"` //创建时间
UpdatedAt xtime.DateTime `json:"updatedAt" form:"updatedAt" gorm:"column:updated_at;type:datetime;comment:更新时间" example:"2024-03-27 17:11:00" csv:"更新时间"` //更新时间
......@@ -23,14 +23,14 @@ func (EmailSendLog) TableName() string {
return TBEmailSendLog
}
func (x EmailSendLog) GetID() xsf.ID {
func (x EmailSendLog) GetID() sf.ID {
return x.ID
}
func (x *EmailSendLog) GetEmailSendID() xsf.ID {
func (x *EmailSendLog) GetEmailSendID() sf.ID {
return x.EmailSendID
}
func (x *EmailSendLog) GetEmailSendIDs(rs []*EmailSendLog) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailSendLog) GetEmailSendIDs(rs []*EmailSendLog) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetEmailSendID())
}
......
package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// EmailTpl 邮件模板
type EmailTpl struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
Code string `json:"code" form:"code" gorm:"column:code;type:tinyint(8);comment:模板代码" example:"SMS_NOTICE" csv:"模板代码"` //模板代码
Subject string `json:"subject" form:"subject" gorm:"column:subject;type:varchar(255);comment:主题" example:"验证码" csv:"subject"` //主题
Tpl string `json:"tpl" form:"tpl" gorm:"column:tpl;type:text;comment:模板" example:"<div>hello moon! </div>" csv:"模板"` //模板
......@@ -22,7 +22,7 @@ func (EmailTpl) TableName() string {
return TBEmailTpl
}
func (x EmailTpl) GetID() xsf.ID {
func (x EmailTpl) GetID() sf.ID {
return x.ID
}
func (x EmailTpl) GetOrder() string {
......
package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// EmailTplReceiver 邮件模板收件人
type EmailTplReceiver struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" gorm:"column:tpl_id;type:bigint(20);comment:模板id" example:"1" csv:"模板id"` //模板id
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1" csv:"用户主键id"` //主键
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" gorm:"column:tpl_id;type:bigint(20);comment:模板id" example:"1" csv:"模板id"` //模板id
Receiver string `json:"receiver" form:"receiver" gorm:"column:receiver;type:varchar(255);comment:收件人" example:"月饼<mooncake2026@163.com>" csv:"收件人"` //收件人
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2024-03-27 17:11:00" csv:"创建时间"` //创建时间
UpdatedAt xtime.DateTime `json:"updatedAt" form:"updatedAt" gorm:"column:updated_at;type:datetime;comment:更新时间" example:"2024-03-27 17:11:00" csv:"更新时间"` //更新时间
......@@ -22,14 +22,14 @@ func (EmailTplReceiver) TableName() string {
return TBEmailTplReceiver
}
func (x EmailTplReceiver) GetID() xsf.ID {
func (x EmailTplReceiver) GetID() sf.ID {
return x.ID
}
func (x *EmailTplReceiver) GetTplID() xsf.ID {
func (x *EmailTplReceiver) GetTplID() sf.ID {
return x.TplID
}
func (x *EmailTplReceiver) GetTplIDs(rs []*EmailTplReceiver) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *EmailTplReceiver) GetTplIDs(rs []*EmailTplReceiver) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetTplID())
}
......
......@@ -9,10 +9,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/ecode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter "gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailService struct {
......@@ -29,17 +28,17 @@ func newEmailService() *emailService {
}
}
func (x *emailService) Create(ctx context.Context, in *types.EmailCreateReq) (id xsf.ID, err error) {
func (x *emailService) Create(ctx context.Context, in *types.EmailCreateReq) (id sf.ID, err error) {
email := &models.Email{}
_ = copier.Copy(email, in)
email.ID = xsfutils.EmailID(ctx)
email.ID = sf.GenerateID()
if err = dao.EmailDao.Create(ctx, email); err != nil {
return 0, err
}
return email.ID, nil
}
func (x *emailService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *emailService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -61,7 +60,7 @@ func (x *emailService) UpdateByID(ctx context.Context, in *types.EmailUpdateByID
return dao.EmailDao.UpdateByID(ctx, in.ID, emailUpd)
}
func (x *emailService) ErrFound(ctx context.Context, id xsf.ID) (emailBiz *biz.Email, err error) {
func (x *emailService) ErrFound(ctx context.Context, id sf.ID) (emailBiz *biz.Email, err error) {
if id <= 0 {
return nil, nil
}
......@@ -75,7 +74,7 @@ func (x *emailService) ErrFound(ctx context.Context, id xsf.ID) (emailBiz *biz.E
return emailBiz, nil
}
func (x *emailService) ErrNotFound(ctx context.Context, id xsf.ID) (emailBiz *biz.Email, err error) {
func (x *emailService) ErrNotFound(ctx context.Context, id sf.ID) (emailBiz *biz.Email, err error) {
if id <= 0 {
return nil, nil
}
......@@ -89,7 +88,7 @@ func (x *emailService) ErrNotFound(ctx context.Context, id xsf.ID) (emailBiz *bi
return emailBiz, nil
}
func (x *emailService) GetByID(ctx context.Context, id xsf.ID) (emailBiz *biz.Email, err error) {
func (x *emailService) GetByID(ctx context.Context, id sf.ID) (emailBiz *biz.Email, err error) {
if id <= 0 {
return nil, nil
}
......@@ -103,7 +102,7 @@ func (x *emailService) GetByID(ctx context.Context, id xsf.ID) (emailBiz *biz.Em
return x.ToBiz(ctx, email)
}
func (x *emailService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.Email, error) {
func (x *emailService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.Email, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -117,7 +116,7 @@ func (x *emailService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.
return x.ToSliceBiz(ctx, emails)
}
func (x *emailService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.Email, error) {
func (x *emailService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.Email, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -146,7 +145,7 @@ func (x *emailService) Page(ctx context.Context, in *types.EmailPageReq) ([]*biz
}
return emailBizSlice, total, nil
}
func (x *emailService) GetSliceByTplID(ctx context.Context, tplID xsf.ID) ([]*biz.Email, error) {
func (x *emailService) GetSliceByTplID(ctx context.Context, tplID sf.ID) ([]*biz.Email, error) {
if tplID == 0 {
return nil, nil
}
......@@ -160,7 +159,7 @@ func (x *emailService) GetSliceByTplID(ctx context.Context, tplID xsf.ID) ([]*bi
return x.ToSliceBiz(ctx, emails)
}
func (x *emailService) GetSliceByTplIDs(ctx context.Context, tplIDs []xsf.ID) ([]*biz.Email, error) {
func (x *emailService) GetSliceByTplIDs(ctx context.Context, tplIDs []sf.ID) ([]*biz.Email, error) {
if len(tplIDs) == 0 {
return nil, nil
}
......@@ -174,7 +173,7 @@ func (x *emailService) GetSliceByTplIDs(ctx context.Context, tplIDs []xsf.ID) ([
return x.ToSliceBiz(ctx, emails)
}
func (x *emailService) GetMapSliceByTplIDs(ctx context.Context, tplIDs []xsf.ID) (map[xsf.ID][]*biz.Email, int, error) {
func (x *emailService) GetMapSliceByTplIDs(ctx context.Context, tplIDs []sf.ID) (map[sf.ID][]*biz.Email, int, error) {
if len(tplIDs) == 0 {
return nil, 0, nil
}
......@@ -185,7 +184,7 @@ func (x *emailService) GetMapSliceByTplIDs(ctx context.Context, tplIDs []xsf.ID)
if len(emailBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.Email)
ret := make(map[sf.ID][]*biz.Email)
for _, r := range emailBizSlice {
ret[r.TplID] = append(ret[r.TplID], r)
}
......
......@@ -9,10 +9,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/ecode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter "gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailReceiverService struct {
......@@ -29,17 +28,17 @@ func newEmailReceiverService() *emailReceiverService {
}
}
func (x *emailReceiverService) Create(ctx context.Context, in *types.EmailReceiverCreateReq) (id xsf.ID, err error) {
func (x *emailReceiverService) Create(ctx context.Context, in *types.EmailReceiverCreateReq) (id sf.ID, err error) {
emailReceiver := &models.EmailReceiver{}
_ = copier.Copy(emailReceiver, in)
emailReceiver.ID = xsfutils.EmailReceiverID(ctx)
emailReceiver.ID = sf.GenerateID()
if err = dao.EmailReceiverDao.Create(ctx, emailReceiver); err != nil {
return 0, err
}
return emailReceiver.ID, nil
}
func (x *emailReceiverService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *emailReceiverService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -61,7 +60,7 @@ func (x *emailReceiverService) UpdateByID(ctx context.Context, in *types.EmailRe
return dao.EmailReceiverDao.UpdateByID(ctx, in.ID, emailReceiverUpd)
}
func (x *emailReceiverService) ErrFound(ctx context.Context, id xsf.ID) (emailReceiverBiz *biz.EmailReceiver, err error) {
func (x *emailReceiverService) ErrFound(ctx context.Context, id sf.ID) (emailReceiverBiz *biz.EmailReceiver, err error) {
if id <= 0 {
return nil, nil
}
......@@ -75,7 +74,7 @@ func (x *emailReceiverService) ErrFound(ctx context.Context, id xsf.ID) (emailRe
return emailReceiverBiz, nil
}
func (x *emailReceiverService) ErrNotFound(ctx context.Context, id xsf.ID) (emailReceiverBiz *biz.EmailReceiver, err error) {
func (x *emailReceiverService) ErrNotFound(ctx context.Context, id sf.ID) (emailReceiverBiz *biz.EmailReceiver, err error) {
if id <= 0 {
return nil, nil
}
......@@ -89,7 +88,7 @@ func (x *emailReceiverService) ErrNotFound(ctx context.Context, id xsf.ID) (emai
return emailReceiverBiz, nil
}
func (x *emailReceiverService) GetByID(ctx context.Context, id xsf.ID) (emailReceiverBiz *biz.EmailReceiver, err error) {
func (x *emailReceiverService) GetByID(ctx context.Context, id sf.ID) (emailReceiverBiz *biz.EmailReceiver, err error) {
if id <= 0 {
return nil, nil
}
......@@ -103,7 +102,7 @@ func (x *emailReceiverService) GetByID(ctx context.Context, id xsf.ID) (emailRec
return x.ToBiz(ctx, emailReceiver)
}
func (x *emailReceiverService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.EmailReceiver, error) {
func (x *emailReceiverService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.EmailReceiver, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -117,7 +116,7 @@ func (x *emailReceiverService) GetSliceByIDs(ctx context.Context, ids []xsf.ID)
return x.ToSliceBiz(ctx, emailReceivers)
}
func (x *emailReceiverService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.EmailReceiver, error) {
func (x *emailReceiverService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.EmailReceiver, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -146,7 +145,7 @@ func (x *emailReceiverService) Page(ctx context.Context, in *types.EmailReceiver
}
return emailReceiverBizSlice, total, nil
}
func (x *emailReceiverService) GetSliceByEmailID(ctx context.Context, emailID xsf.ID) ([]*biz.EmailReceiver, error) {
func (x *emailReceiverService) GetSliceByEmailID(ctx context.Context, emailID sf.ID) ([]*biz.EmailReceiver, error) {
if emailID == 0 {
return nil, nil
}
......@@ -160,7 +159,7 @@ func (x *emailReceiverService) GetSliceByEmailID(ctx context.Context, emailID xs
return x.ToSliceBiz(ctx, emailReceivers)
}
func (x *emailReceiverService) GetSliceByEmailIDs(ctx context.Context, emailIDs []xsf.ID) ([]*biz.EmailReceiver, error) {
func (x *emailReceiverService) GetSliceByEmailIDs(ctx context.Context, emailIDs []sf.ID) ([]*biz.EmailReceiver, error) {
if len(emailIDs) == 0 {
return nil, nil
}
......@@ -174,7 +173,7 @@ func (x *emailReceiverService) GetSliceByEmailIDs(ctx context.Context, emailIDs
return x.ToSliceBiz(ctx, emailReceivers)
}
func (x *emailReceiverService) GetMapSliceByEmailIDs(ctx context.Context, emailIDs []xsf.ID) (map[xsf.ID][]*biz.EmailReceiver, int, error) {
func (x *emailReceiverService) GetMapSliceByEmailIDs(ctx context.Context, emailIDs []sf.ID) (map[sf.ID][]*biz.EmailReceiver, int, error) {
if len(emailIDs) == 0 {
return nil, 0, nil
}
......@@ -185,7 +184,7 @@ func (x *emailReceiverService) GetMapSliceByEmailIDs(ctx context.Context, emailI
if len(emailReceiverBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.EmailReceiver)
ret := make(map[sf.ID][]*biz.EmailReceiver)
for _, r := range emailReceiverBizSlice {
ret[r.EmailID] = append(ret[r.EmailID], r)
}
......
......@@ -10,10 +10,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter "gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailSendService struct {
......@@ -30,17 +29,17 @@ func newEmailSendService() *emailSendService {
}
}
func (x *emailSendService) Create(ctx context.Context, in *types.EmailSendCreateReq) (id xsf.ID, err error) {
func (x *emailSendService) Create(ctx context.Context, in *types.EmailSendCreateReq) (id sf.ID, err error) {
emailSend := &models.EmailSend{}
_ = copier.Copy(emailSend, in)
emailSend.ID = xsfutils.EmailSendID(ctx)
emailSend.ID = sf.GenerateID()
if err = dao.EmailSendDao.Create(ctx, emailSend); err != nil {
return 0, err
}
return emailSend.ID, nil
}
func (x *emailSendService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *emailSendService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -62,7 +61,7 @@ func (x *emailSendService) UpdateByID(ctx context.Context, in *types.EmailSendUp
return dao.EmailSendDao.UpdateByID(ctx, in.ID, emailSendUpd)
}
func (x *emailSendService) ErrFound(ctx context.Context, id xsf.ID) (emailSendBiz *biz.EmailSend, err error) {
func (x *emailSendService) ErrFound(ctx context.Context, id sf.ID) (emailSendBiz *biz.EmailSend, err error) {
if id <= 0 {
return nil, nil
}
......@@ -76,7 +75,7 @@ func (x *emailSendService) ErrFound(ctx context.Context, id xsf.ID) (emailSendBi
return emailSendBiz, nil
}
func (x *emailSendService) ErrNotFound(ctx context.Context, id xsf.ID) (emailSendBiz *biz.EmailSend, err error) {
func (x *emailSendService) ErrNotFound(ctx context.Context, id sf.ID) (emailSendBiz *biz.EmailSend, err error) {
if id <= 0 {
return nil, nil
}
......@@ -90,7 +89,7 @@ func (x *emailSendService) ErrNotFound(ctx context.Context, id xsf.ID) (emailSen
return emailSendBiz, nil
}
func (x *emailSendService) GetByID(ctx context.Context, id xsf.ID) (emailSendBiz *biz.EmailSend, err error) {
func (x *emailSendService) GetByID(ctx context.Context, id sf.ID) (emailSendBiz *biz.EmailSend, err error) {
if id <= 0 {
return nil, nil
}
......@@ -104,7 +103,7 @@ func (x *emailSendService) GetByID(ctx context.Context, id xsf.ID) (emailSendBiz
return x.ToBiz(ctx, emailSend)
}
func (x *emailSendService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.EmailSend, error) {
func (x *emailSendService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.EmailSend, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -118,7 +117,7 @@ func (x *emailSendService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*
return x.ToSliceBiz(ctx, emailSends)
}
func (x *emailSendService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.EmailSend, error) {
func (x *emailSendService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.EmailSend, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -193,7 +192,7 @@ func (x *emailSendService) GetMapSliceByStates(ctx context.Context, states []enu
}
return ret, len(emailSendBizSlice), nil
}
func (x *emailSendService) GetSliceByEmailID(ctx context.Context, emailID xsf.ID) ([]*biz.EmailSend, error) {
func (x *emailSendService) GetSliceByEmailID(ctx context.Context, emailID sf.ID) ([]*biz.EmailSend, error) {
if emailID == 0 {
return nil, nil
}
......@@ -207,7 +206,7 @@ func (x *emailSendService) GetSliceByEmailID(ctx context.Context, emailID xsf.ID
return x.ToSliceBiz(ctx, emailSends)
}
func (x *emailSendService) GetSliceByEmailIDs(ctx context.Context, emailIDs []xsf.ID) ([]*biz.EmailSend, error) {
func (x *emailSendService) GetSliceByEmailIDs(ctx context.Context, emailIDs []sf.ID) ([]*biz.EmailSend, error) {
if len(emailIDs) == 0 {
return nil, nil
}
......@@ -221,7 +220,7 @@ func (x *emailSendService) GetSliceByEmailIDs(ctx context.Context, emailIDs []xs
return x.ToSliceBiz(ctx, emailSends)
}
func (x *emailSendService) GetMapSliceByEmailIDs(ctx context.Context, emailIDs []xsf.ID) (map[xsf.ID][]*biz.EmailSend, int, error) {
func (x *emailSendService) GetMapSliceByEmailIDs(ctx context.Context, emailIDs []sf.ID) (map[sf.ID][]*biz.EmailSend, int, error) {
if len(emailIDs) == 0 {
return nil, 0, nil
}
......@@ -232,7 +231,7 @@ func (x *emailSendService) GetMapSliceByEmailIDs(ctx context.Context, emailIDs [
if len(emailSendBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.EmailSend)
ret := make(map[sf.ID][]*biz.EmailSend)
for _, r := range emailSendBizSlice {
ret[r.EmailID] = append(ret[r.EmailID], r)
}
......
......@@ -9,10 +9,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/ecode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter "gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailSendLogService struct {
......@@ -29,17 +28,17 @@ func newEmailSendLogService() *emailSendLogService {
}
}
func (x *emailSendLogService) Create(ctx context.Context, in *types.EmailSendLogCreateReq) (id xsf.ID, err error) {
func (x *emailSendLogService) Create(ctx context.Context, in *types.EmailSendLogCreateReq) (id sf.ID, err error) {
emailSendLog := &models.EmailSendLog{}
_ = copier.Copy(emailSendLog, in)
emailSendLog.ID = xsfutils.EmailSendLogID(ctx)
emailSendLog.ID = sf.GenerateID()
if err = dao.EmailSendLogDao.Create(ctx, emailSendLog); err != nil {
return 0, err
}
return emailSendLog.ID, nil
}
func (x *emailSendLogService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *emailSendLogService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -61,7 +60,7 @@ func (x *emailSendLogService) UpdateByID(ctx context.Context, in *types.EmailSen
return dao.EmailSendLogDao.UpdateByID(ctx, in.ID, emailSendLogUpd)
}
func (x *emailSendLogService) ErrFound(ctx context.Context, id xsf.ID) (emailSendLogBiz *biz.EmailSendLog, err error) {
func (x *emailSendLogService) ErrFound(ctx context.Context, id sf.ID) (emailSendLogBiz *biz.EmailSendLog, err error) {
if id <= 0 {
return nil, nil
}
......@@ -75,7 +74,7 @@ func (x *emailSendLogService) ErrFound(ctx context.Context, id xsf.ID) (emailSen
return emailSendLogBiz, nil
}
func (x *emailSendLogService) ErrNotFound(ctx context.Context, id xsf.ID) (emailSendLogBiz *biz.EmailSendLog, err error) {
func (x *emailSendLogService) ErrNotFound(ctx context.Context, id sf.ID) (emailSendLogBiz *biz.EmailSendLog, err error) {
if id <= 0 {
return nil, nil
}
......@@ -89,7 +88,7 @@ func (x *emailSendLogService) ErrNotFound(ctx context.Context, id xsf.ID) (email
return emailSendLogBiz, nil
}
func (x *emailSendLogService) GetByID(ctx context.Context, id xsf.ID) (emailSendLogBiz *biz.EmailSendLog, err error) {
func (x *emailSendLogService) GetByID(ctx context.Context, id sf.ID) (emailSendLogBiz *biz.EmailSendLog, err error) {
if id <= 0 {
return nil, nil
}
......@@ -103,7 +102,7 @@ func (x *emailSendLogService) GetByID(ctx context.Context, id xsf.ID) (emailSend
return x.ToBiz(ctx, emailSendLog)
}
func (x *emailSendLogService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.EmailSendLog, error) {
func (x *emailSendLogService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.EmailSendLog, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -117,7 +116,7 @@ func (x *emailSendLogService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) (
return x.ToSliceBiz(ctx, emailSendLogs)
}
func (x *emailSendLogService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.EmailSendLog, error) {
func (x *emailSendLogService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.EmailSendLog, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -146,7 +145,7 @@ func (x *emailSendLogService) Page(ctx context.Context, in *types.EmailSendLogPa
}
return emailSendLogBizSlice, total, nil
}
func (x *emailSendLogService) GetSliceByEmailSendID(ctx context.Context, emailSendID xsf.ID) ([]*biz.EmailSendLog, error) {
func (x *emailSendLogService) GetSliceByEmailSendID(ctx context.Context, emailSendID sf.ID) ([]*biz.EmailSendLog, error) {
if emailSendID == 0 {
return nil, nil
}
......@@ -160,7 +159,7 @@ func (x *emailSendLogService) GetSliceByEmailSendID(ctx context.Context, emailSe
return x.ToSliceBiz(ctx, emailSendLogs)
}
func (x *emailSendLogService) GetSliceByEmailSendIDs(ctx context.Context, emailSendIDs []xsf.ID) ([]*biz.EmailSendLog, error) {
func (x *emailSendLogService) GetSliceByEmailSendIDs(ctx context.Context, emailSendIDs []sf.ID) ([]*biz.EmailSendLog, error) {
if len(emailSendIDs) == 0 {
return nil, nil
}
......@@ -174,7 +173,7 @@ func (x *emailSendLogService) GetSliceByEmailSendIDs(ctx context.Context, emailS
return x.ToSliceBiz(ctx, emailSendLogs)
}
func (x *emailSendLogService) GetMapSliceByEmailSendIDs(ctx context.Context, emailSendIDs []xsf.ID) (map[xsf.ID][]*biz.EmailSendLog, int, error) {
func (x *emailSendLogService) GetMapSliceByEmailSendIDs(ctx context.Context, emailSendIDs []sf.ID) (map[sf.ID][]*biz.EmailSendLog, int, error) {
if len(emailSendIDs) == 0 {
return nil, 0, nil
}
......@@ -185,7 +184,7 @@ func (x *emailSendLogService) GetMapSliceByEmailSendIDs(ctx context.Context, ema
if len(emailSendLogBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.EmailSendLog)
ret := make(map[sf.ID][]*biz.EmailSendLog)
for _, r := range emailSendLogBizSlice {
ret[r.EmailSendID] = append(ret[r.EmailSendID], r)
}
......
......@@ -9,10 +9,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/ecode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter "gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailTplService struct {
......@@ -29,17 +28,17 @@ func newEmailTplService() *emailTplService {
}
}
func (x *emailTplService) Create(ctx context.Context, in *types.EmailTplCreateReq) (id xsf.ID, err error) {
func (x *emailTplService) Create(ctx context.Context, in *types.EmailTplCreateReq) (id sf.ID, err error) {
emailTpl := &models.EmailTpl{}
_ = copier.Copy(emailTpl, in)
emailTpl.ID = xsfutils.EmailTplID(ctx)
emailTpl.ID = sf.GenerateID()
if err = dao.EmailTplDao.Create(ctx, emailTpl); err != nil {
return 0, err
}
return emailTpl.ID, nil
}
func (x *emailTplService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *emailTplService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -61,7 +60,7 @@ func (x *emailTplService) UpdateByID(ctx context.Context, in *types.EmailTplUpda
return dao.EmailTplDao.UpdateByID(ctx, in.ID, emailTplUpd)
}
func (x *emailTplService) ErrFound(ctx context.Context, id xsf.ID) (emailTplBiz *biz.EmailTpl, err error) {
func (x *emailTplService) ErrFound(ctx context.Context, id sf.ID) (emailTplBiz *biz.EmailTpl, err error) {
if id <= 0 {
return nil, nil
}
......@@ -75,7 +74,7 @@ func (x *emailTplService) ErrFound(ctx context.Context, id xsf.ID) (emailTplBiz
return emailTplBiz, nil
}
func (x *emailTplService) ErrNotFound(ctx context.Context, id xsf.ID) (emailTplBiz *biz.EmailTpl, err error) {
func (x *emailTplService) ErrNotFound(ctx context.Context, id sf.ID) (emailTplBiz *biz.EmailTpl, err error) {
if id <= 0 {
return nil, nil
}
......@@ -89,7 +88,7 @@ func (x *emailTplService) ErrNotFound(ctx context.Context, id xsf.ID) (emailTplB
return emailTplBiz, nil
}
func (x *emailTplService) GetByID(ctx context.Context, id xsf.ID) (emailTplBiz *biz.EmailTpl, err error) {
func (x *emailTplService) GetByID(ctx context.Context, id sf.ID) (emailTplBiz *biz.EmailTpl, err error) {
if id <= 0 {
return nil, nil
}
......@@ -117,7 +116,7 @@ func (x *emailTplService) GetByCode(ctx context.Context, code string) (emailTplB
return x.ToBiz(ctx, emailTpl)
}
func (x *emailTplService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.EmailTpl, error) {
func (x *emailTplService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.EmailTpl, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -131,7 +130,7 @@ func (x *emailTplService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*b
return x.ToSliceBiz(ctx, emailTpls)
}
func (x *emailTplService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.EmailTpl, error) {
func (x *emailTplService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.EmailTpl, error) {
if len(ids) == 0 {
return nil, nil
}
......
......@@ -9,10 +9,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/ecode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter "gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type emailTplReceiverService struct {
......@@ -29,17 +28,17 @@ func newEmailTplReceiverService() *emailTplReceiverService {
}
}
func (x *emailTplReceiverService) Create(ctx context.Context, in *types.EmailTplReceiverCreateReq) (id xsf.ID, err error) {
func (x *emailTplReceiverService) Create(ctx context.Context, in *types.EmailTplReceiverCreateReq) (id sf.ID, err error) {
emailTplReceiver := &models.EmailTplReceiver{}
_ = copier.Copy(emailTplReceiver, in)
emailTplReceiver.ID = xsfutils.EmailTplReceiverID(ctx)
emailTplReceiver.ID = sf.GenerateID()
if err = dao.EmailTplReceiverDao.Create(ctx, emailTplReceiver); err != nil {
return 0, err
}
return emailTplReceiver.ID, nil
}
func (x *emailTplReceiverService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *emailTplReceiverService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -61,7 +60,7 @@ func (x *emailTplReceiverService) UpdateByID(ctx context.Context, in *types.Emai
return dao.EmailTplReceiverDao.UpdateByID(ctx, in.ID, emailTplReceiverUpd)
}
func (x *emailTplReceiverService) ErrFound(ctx context.Context, id xsf.ID) (emailTplReceiverBiz *biz.EmailTplReceiver, err error) {
func (x *emailTplReceiverService) ErrFound(ctx context.Context, id sf.ID) (emailTplReceiverBiz *biz.EmailTplReceiver, err error) {
if id <= 0 {
return nil, nil
}
......@@ -75,7 +74,7 @@ func (x *emailTplReceiverService) ErrFound(ctx context.Context, id xsf.ID) (emai
return emailTplReceiverBiz, nil
}
func (x *emailTplReceiverService) ErrNotFound(ctx context.Context, id xsf.ID) (emailTplReceiverBiz *biz.EmailTplReceiver, err error) {
func (x *emailTplReceiverService) ErrNotFound(ctx context.Context, id sf.ID) (emailTplReceiverBiz *biz.EmailTplReceiver, err error) {
if id <= 0 {
return nil, nil
}
......@@ -89,7 +88,7 @@ func (x *emailTplReceiverService) ErrNotFound(ctx context.Context, id xsf.ID) (e
return emailTplReceiverBiz, nil
}
func (x *emailTplReceiverService) GetByID(ctx context.Context, id xsf.ID) (emailTplReceiverBiz *biz.EmailTplReceiver, err error) {
func (x *emailTplReceiverService) GetByID(ctx context.Context, id sf.ID) (emailTplReceiverBiz *biz.EmailTplReceiver, err error) {
if id <= 0 {
return nil, nil
}
......@@ -103,7 +102,7 @@ func (x *emailTplReceiverService) GetByID(ctx context.Context, id xsf.ID) (email
return x.ToBiz(ctx, emailTplReceiver)
}
func (x *emailTplReceiverService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.EmailTplReceiver, error) {
func (x *emailTplReceiverService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.EmailTplReceiver, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -117,7 +116,7 @@ func (x *emailTplReceiverService) GetSliceByIDs(ctx context.Context, ids []xsf.I
return x.ToSliceBiz(ctx, emailTplReceivers)
}
func (x *emailTplReceiverService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.EmailTplReceiver, error) {
func (x *emailTplReceiverService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.EmailTplReceiver, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -146,7 +145,7 @@ func (x *emailTplReceiverService) Page(ctx context.Context, in *types.EmailTplRe
}
return emailTplReceiverBizSlice, total, nil
}
func (x *emailTplReceiverService) GetSliceByTplID(ctx context.Context, tplID xsf.ID) ([]*biz.EmailTplReceiver, error) {
func (x *emailTplReceiverService) GetSliceByTplID(ctx context.Context, tplID sf.ID) ([]*biz.EmailTplReceiver, error) {
if tplID == 0 {
return nil, nil
}
......@@ -160,7 +159,7 @@ func (x *emailTplReceiverService) GetSliceByTplID(ctx context.Context, tplID xsf
return x.ToSliceBiz(ctx, emailTplReceivers)
}
func (x *emailTplReceiverService) GetSliceByTplIDs(ctx context.Context, tplIDs []xsf.ID) ([]*biz.EmailTplReceiver, error) {
func (x *emailTplReceiverService) GetSliceByTplIDs(ctx context.Context, tplIDs []sf.ID) ([]*biz.EmailTplReceiver, error) {
if len(tplIDs) == 0 {
return nil, nil
}
......@@ -174,7 +173,7 @@ func (x *emailTplReceiverService) GetSliceByTplIDs(ctx context.Context, tplIDs [
return x.ToSliceBiz(ctx, emailTplReceivers)
}
func (x *emailTplReceiverService) GetMapSliceByTplIDs(ctx context.Context, tplIDs []xsf.ID) (map[xsf.ID][]*biz.EmailTplReceiver, int, error) {
func (x *emailTplReceiverService) GetMapSliceByTplIDs(ctx context.Context, tplIDs []sf.ID) (map[sf.ID][]*biz.EmailTplReceiver, int, error) {
if len(tplIDs) == 0 {
return nil, 0, nil
}
......@@ -185,7 +184,7 @@ func (x *emailTplReceiverService) GetMapSliceByTplIDs(ctx context.Context, tplID
if len(emailTplReceiverBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.EmailTplReceiver)
ret := make(map[sf.ID][]*biz.EmailTplReceiver)
for _, r := range emailTplReceiverBizSlice {
ret[r.TplID] = append(ret[r.TplID], r)
}
......
......@@ -4,9 +4,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -14,7 +14,7 @@ var _ xtime.DateTime
// EmailCreateReq request params 邮件
type EmailCreateReq struct {
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
From string `json:"from" form:"from" example:"月饼<mooncake2026@163.com>"` // 发件人
Content string `json:"content" form:"content" example:"<div>hello moon! </div>"` // 邮件内容
}
......@@ -28,7 +28,7 @@ func (x *EmailCreateReq) Valid() error {
// EmailGetByTplIDReq request params
type EmailGetByTplIDReq struct {
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` //模板id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` //模板id
}
func (x *EmailGetByTplIDReq) Valid() error {
......@@ -40,8 +40,8 @@ func (x *EmailGetByTplIDReq) Valid() error {
// EmailUpdateByIDReq request params
type EmailUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
From string `json:"from" form:"from" example:"月饼<mooncake2026@163.com>"` // 发件人
Content string `json:"content" form:"content" example:"<div>hello moon! </div>"` // 邮件内容
}
......@@ -58,8 +58,8 @@ func (x *EmailUpdateByIDReq) Valid() error {
// EmailUpdateByIDsReq request params
type EmailUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
From string `json:"from" form:"from" example:"月饼<mooncake2026@163.com>"` // 发件人
Content string `json:"content" form:"content" example:"<div>hello moon! </div>"` // 邮件内容
}
......@@ -77,8 +77,8 @@ func (x *EmailUpdateByIDsReq) Valid() error {
// EmailPageReq request params
type EmailPageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
From string `json:"from" form:"from" query:"" example:"月饼<mooncake2026@163.com>"` // 发件人
Content string `json:"content" form:"content" query:"" example:"<div>hello moon! </div>"` // 邮件内容
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
......@@ -97,8 +97,8 @@ func (EmailPageReq) TableName() string {
// EmailExportReq request params
type EmailExportReq struct {
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
From string `json:"from" form:"from" query:"" example:"月饼<mooncake2026@163.com>"` // 发件人
Content string `json:"content" form:"content" query:"" example:"<div>hello moon! </div>"` // 邮件内容
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
......
......@@ -4,9 +4,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -14,7 +14,7 @@ var _ xtime.DateTime
// EmailReceiverCreateReq request params 邮件收件人
type EmailReceiverCreateReq struct {
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
Receiver string `json:"receiver" form:"receiver" example:"月饼<mooncake2026@163.com>"` // 收件人
}
......@@ -27,7 +27,7 @@ func (x *EmailReceiverCreateReq) Valid() error {
// EmailReceiverGetByEmailIDReq request params
type EmailReceiverGetByEmailIDReq struct {
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` //邮件id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` //邮件id
}
func (x *EmailReceiverGetByEmailIDReq) Valid() error {
......@@ -39,8 +39,8 @@ func (x *EmailReceiverGetByEmailIDReq) Valid() error {
// EmailReceiverUpdateByIDReq request params
type EmailReceiverUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
Receiver string `json:"receiver" form:"receiver" example:"月饼<mooncake2026@163.com>"` // 收件人
}
......@@ -56,8 +56,8 @@ func (x *EmailReceiverUpdateByIDReq) Valid() error {
// EmailReceiverUpdateByIDsReq request params
type EmailReceiverUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
Receiver string `json:"receiver" form:"receiver" example:"月饼<mooncake2026@163.com>"` // 收件人
}
......@@ -74,8 +74,8 @@ func (x *EmailReceiverUpdateByIDsReq) Valid() error {
// EmailReceiverPageReq request params
type EmailReceiverPageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
Receiver string `json:"receiver" form:"receiver" query:"" example:"月饼<mooncake2026@163.com>"` // 收件人
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......@@ -93,8 +93,8 @@ func (EmailReceiverPageReq) TableName() string {
// EmailReceiverExportReq request params
type EmailReceiverExportReq struct {
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
Receiver string `json:"receiver" form:"receiver" query:"" example:"月饼<mooncake2026@163.com>"` // 收件人
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......
......@@ -5,10 +5,10 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -16,7 +16,7 @@ var _ xtime.DateTime
// EmailSendCreateReq request params 邮件发送
type EmailSendCreateReq struct {
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
State enums.EmailSend_State_Enum `json:"state" form:"state" validate:"required" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
}
......@@ -32,7 +32,7 @@ func (x *EmailSendCreateReq) Valid() error {
// EmailSendGetByEmailIDReq request params
type EmailSendGetByEmailIDReq struct {
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` //邮件id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` //邮件id
}
func (x *EmailSendGetByEmailIDReq) Valid() error {
......@@ -56,8 +56,8 @@ func (x *EmailSendGetByStateReq) Valid() error {
// EmailSendUpdateByIDReq request params
type EmailSendUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
State enums.EmailSend_State_Enum `json:"state" form:"state" validate:"required" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
}
......@@ -76,8 +76,8 @@ func (x *EmailSendUpdateByIDReq) Valid() error {
// EmailSendUpdateByIDsReq request params
type EmailSendUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" validate:"required" example:"1"` // 邮件id
State enums.EmailSend_State_Enum `json:"state" form:"state" validate:"required" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
}
......@@ -97,8 +97,8 @@ func (x *EmailSendUpdateByIDsReq) Valid() error {
// EmailSendPageReq request params
type EmailSendPageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
States []enums.EmailSend_State_Enum `json:"state" form:"state" query:"type:in" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......@@ -116,8 +116,8 @@ func (EmailSendPageReq) TableName() string {
// EmailSendExportReq request params
type EmailSendExportReq struct {
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID xsf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailID sf.ID `json:"emailID" form:"emailID" swaggertype:"string" query:"" example:"1"` // 邮件id
States []enums.EmailSend_State_Enum `json:"state" form:"state" query:"type:in" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......
......@@ -5,10 +5,10 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -16,7 +16,7 @@ var _ xtime.DateTime
// EmailSendLogCreateReq request params 邮件发送记录
type EmailSendLogCreateReq struct {
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` // 邮件发送id
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` // 邮件发送id
State enums.EmailSendLog_State_Enum `json:"state" form:"state" validate:"required" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
}
......@@ -32,7 +32,7 @@ func (x *EmailSendLogCreateReq) Valid() error {
// EmailSendLogGetByEmailSendIDReq request params
type EmailSendLogGetByEmailSendIDReq struct {
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` //邮件发送id
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` //邮件发送id
}
func (x *EmailSendLogGetByEmailSendIDReq) Valid() error {
......@@ -56,8 +56,8 @@ func (x *EmailSendLogGetByStateReq) Valid() error {
// EmailSendLogUpdateByIDReq request params
type EmailSendLogUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` // 邮件发送id
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` // 邮件发送id
State enums.EmailSendLog_State_Enum `json:"state" form:"state" validate:"required" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
}
......@@ -76,8 +76,8 @@ func (x *EmailSendLogUpdateByIDReq) Valid() error {
// EmailSendLogUpdateByIDsReq request params
type EmailSendLogUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` // 邮件发送id
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" validate:"required" example:"1"` // 邮件发送id
State enums.EmailSendLog_State_Enum `json:"state" form:"state" validate:"required" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
}
......@@ -97,8 +97,8 @@ func (x *EmailSendLogUpdateByIDsReq) Valid() error {
// EmailSendLogPageReq request params
type EmailSendLogPageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" query:"" example:"1"` // 邮件发送id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" query:"" example:"1"` // 邮件发送id
States []enums.EmailSendLog_State_Enum `json:"state" form:"state" query:"type:in" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......@@ -116,8 +116,8 @@ func (EmailSendLogPageReq) TableName() string {
// EmailSendLogExportReq request params
type EmailSendLogExportReq struct {
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailSendID xsf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" query:"" example:"1"` // 邮件发送id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
EmailSendID sf.ID `json:"emailSendID" form:"emailSendID" swaggertype:"string" query:"" example:"1"` // 邮件发送id
States []enums.EmailSendLog_State_Enum `json:"state" form:"state" query:"type:in" example:"1"` // 发送状态 枚举[0:未知 1:待处理 2:处理中 3:成功 4:失败]
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......
......@@ -4,9 +4,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -24,7 +24,7 @@ func (x *EmailTplCreateReq) Valid() error {
// EmailTplUpdateByIDReq request params
type EmailTplUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
Code int `json:"code" form:"code" example:"SMS_NOTICE"` // 模板代码
Tpl string `json:"tpl" form:"tpl" example:"<div>hello moon! </div>"` // 模板
}
......@@ -38,7 +38,7 @@ func (x *EmailTplUpdateByIDReq) Valid() error {
// EmailTplUpdateByIDsReq request params
type EmailTplUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
Code int `json:"code" form:"code" example:"SMS_NOTICE"` // 模板代码
Tpl string `json:"tpl" form:"tpl" example:"<div>hello moon! </div>"` // 模板
}
......@@ -53,7 +53,7 @@ func (x *EmailTplUpdateByIDsReq) Valid() error {
// EmailTplPageReq request params
type EmailTplPageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
Code int `json:"code" form:"code" query:"" example:"SMS_NOTICE"` // 模板代码
Tpl string `json:"tpl" form:"tpl" query:"" example:"<div>hello moon! </div>"` // 模板
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
......@@ -72,7 +72,7 @@ func (EmailTplPageReq) TableName() string {
// EmailTplExportReq request params
type EmailTplExportReq struct {
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
Code int `json:"code" form:"code" query:"" example:"SMS_NOTICE"` // 模板代码
Tpl string `json:"tpl" form:"tpl" query:"" example:"<div>hello moon! </div>"` // 模板
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
......
......@@ -4,9 +4,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/errcode"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -14,7 +14,7 @@ var _ xtime.DateTime
// EmailTplReceiverCreateReq request params 邮件模板收件人
type EmailTplReceiverCreateReq struct {
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
Receiver string `json:"receiver" form:"receiver" example:"月饼<mooncake2026@163.com>"` // 收件人
}
......@@ -27,7 +27,7 @@ func (x *EmailTplReceiverCreateReq) Valid() error {
// EmailTplReceiverGetByTplIDReq request params
type EmailTplReceiverGetByTplIDReq struct {
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` //模板id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` //模板id
}
func (x *EmailTplReceiverGetByTplIDReq) Valid() error {
......@@ -39,8 +39,8 @@ func (x *EmailTplReceiverGetByTplIDReq) Valid() error {
// EmailTplReceiverUpdateByIDReq request params
type EmailTplReceiverUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
Receiver string `json:"receiver" form:"receiver" example:"月饼<mooncake2026@163.com>"` // 收件人
}
......@@ -56,8 +56,8 @@ func (x *EmailTplReceiverUpdateByIDReq) Valid() error {
// EmailTplReceiverUpdateByIDsReq request params
type EmailTplReceiverUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" validate:"required" example:"1"` // 模板id
Receiver string `json:"receiver" form:"receiver" example:"月饼<mooncake2026@163.com>"` // 收件人
}
......@@ -74,8 +74,8 @@ func (x *EmailTplReceiverUpdateByIDsReq) Valid() error {
// EmailTplReceiverPageReq request params
type EmailTplReceiverPageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
Receiver string `json:"receiver" form:"receiver" query:"" example:"月饼<mooncake2026@163.com>"` // 收件人
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......@@ -93,8 +93,8 @@ func (EmailTplReceiverPageReq) TableName() string {
// EmailTplReceiverExportReq request params
type EmailTplReceiverExportReq struct {
IDs []xsf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID xsf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
IDs []sf.ID `json:"ids" form:"ids" swaggertype:"array,string" query:"type:in" example:"1"` //用户主键id
TplID sf.ID `json:"tplID" form:"tplID" swaggertype:"string" query:"" example:"1"` // 模板id
Receiver string `json:"receiver" form:"receiver" query:"" example:"月饼<mooncake2026@163.com>"` // 收件人
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2024-03-27 17:11:00"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2024-03-27 17:11:00"` //创建时间截止 (<)
......
package xsfutils
import (
"context"
"fmt"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/idutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
const (
bizTag_email = "qt.operator.email.id"
bizTag_email_receiver = "qt.operator.email.receiver.id"
bizTag_email_send = "qt.operator.email.send.id"
bizTag_email_send_log = "qt.operator.email.send.log.id"
bizTag_email_tpl = "qt.operator.email.tpl.id"
bizTag_email_tpl_receiver = "qt.operator.email.tpl.receiver.id"
)
func EmailID(ctx context.Context) xsf.ID {
return generateID(ctx, bizTag_email)
}
func EmailReceiverID(ctx context.Context) xsf.ID {
return generateID(ctx, bizTag_email_receiver)
}
func EmailSendID(ctx context.Context) xsf.ID {
return generateID(ctx, bizTag_email_send)
}
func EmailSendLogID(ctx context.Context) xsf.ID {
return generateID(ctx, bizTag_email_send_log)
}
func EmailTplID(ctx context.Context) xsf.ID {
return generateID(ctx, bizTag_email_tpl)
}
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 := idutils.GenerateID(ctx, bizTag)
if err != nil {
logger.Error(fmt.Sprintf("GenerateID[%s] failed", bizTag), logger.Err(err), ctxutils.CtxTraceIDField(ctx))
return xsf
}
return xsf
}
// insert into leaf_alloc(biz_tag,max_id,step,description) values ('qt.operator.email.id',100000,2000,'qt.operator.email.id');
// insert into leaf_alloc(biz_tag,max_id,step,description) values ('qt.operator.email.receiver.id',100000,2000,'qt.operator.email.receiver.id');
// insert into leaf_alloc(biz_tag,max_id,step,description) values ('qt.operator.email.send.id',100000,2000,'qt.operator.email.send.id');
// insert into leaf_alloc(biz_tag,max_id,step,description) values ('qt.operator.email.send.log.id',100000,2000,'qt.operator.email.send.log.id');
// insert into leaf_alloc(biz_tag,max_id,step,description) values ('qt.operator.email.tpl.id',100000,2000,'qt.operator.email.tpl.id');
// insert into leaf_alloc(biz_tag,max_id,step,description) values ('qt.operator.email.tpl.receiver.id',100000,2000,'qt.operator.email.tpl.receiver.id');
package xsf
package sf
import (
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
"github.com/bwmarrin/snowflake"
"github.com/spf13/cast"
"gitlab.wanzhuangkj.com/tush/xpkg/config"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
)
......@@ -83,18 +78,7 @@ func (j JSONSyntaxError) Error() string {
}
// n [1,1023]
func Init() error {
n := getConfigN()
delta := getNodeFromPodName()
if delta > 0 {
n = n + delta
}
if n <= 0 {
n = getRandomN()
}
config.Write(func(c *config.Config) {
c.App.IDGeneration.Snowflake.Node = n
})
func Init(n int) error {
nod, e := snowflake.NewNode(int64(n))
if e != nil {
return e
......@@ -104,29 +88,6 @@ func Init() error {
return nil
}
func getConfigN() int {
n := 0
config.Read(func(c *config.Config) {
n = c.App.IDGeneration.Snowflake.Node
})
return n
}
func getRandomN() int {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
n := int(r.Intn(1023) + 1)
return n
}
func getNodeFromPodName() int {
if podName := os.Getenv("POD_NAME"); podName != "" {
parts := strings.Split(podName, "-")
if len(parts) == 2 {
lastPart := parts[len(parts)-1]
n, _ := strconv.ParseInt(lastPart, 10, 64)
return int(n)
}
}
return 0
}
func (x ID) String() string {
return snowflake.ID(x).String()
}
......
......@@ -9,8 +9,8 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/jwt"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
......@@ -27,7 +27,7 @@ const (
type wsConn struct {
manager *WsConnManager
receiverID xsf.ID // user id
receiverID sf.ID // user id
conn *websocket.Conn
sendBuff chan *WsMessage
log *zap.Logger
......@@ -36,7 +36,7 @@ type wsConn struct {
}
type WsConnManager struct {
pool map[xsf.ID]*wsConn
pool map[sf.ID]*wsConn
upgrader *websocket.Upgrader
l *sync.RWMutex
log *zap.Logger
......@@ -44,19 +44,19 @@ type WsConnManager struct {
}
type Hook interface {
OnHeartbeatOK(receiverID xsf.ID) error
OnHeartbeatFail(receiverID xsf.ID) error
AfterSend(receiverID xsf.ID, payload *WsMessage) error
OnConnNotFound(receiverID xsf.ID, payload *WsMessage) error
OnSendFail(receiverID xsf.ID, payload *WsMessage, err error) error
OnConnAccept(userID xsf.ID) error
AfterUnregister(userID xsf.ID) error
OnReceive(senderID xsf.ID, messageType int, msg []byte)
OnHeartbeatOK(receiverID sf.ID) error
OnHeartbeatFail(receiverID sf.ID) error
AfterSend(receiverID sf.ID, payload *WsMessage) error
OnConnNotFound(receiverID sf.ID, payload *WsMessage) error
OnSendFail(receiverID sf.ID, payload *WsMessage, err error) error
OnConnAccept(userID sf.ID) error
AfterUnregister(userID sf.ID) error
OnReceive(senderID sf.ID, messageType int, msg []byte)
}
func NewWsConnManager(logger *zap.Logger, upgrader *websocket.Upgrader, hooks ...Hook) *WsConnManager {
return &WsConnManager{
pool: make(map[xsf.ID]*wsConn),
pool: make(map[sf.ID]*wsConn),
log: logger,
upgrader: upgrader,
hooks: hooks,
......@@ -105,7 +105,7 @@ func (m *WsConnManager) accept(c *gin.Context) error {
return xerror.Wrap(err, "parse jwt")
}
userIDStr := claims.UID
userID, _ := xsf.ParseString(userIDStr)
userID, _ := sf.ParseString(userIDStr)
conn, err := m.upgrader.Upgrade(w, r, nil)
if err != nil {
return xerror.Wrap(err, "ws upgrade failed")
......@@ -129,14 +129,14 @@ func (m *WsConnManager) accept(c *gin.Context) error {
return nil
}
func (m *WsConnManager) getConn(userID xsf.ID) (*wsConn, bool) {
func (m *WsConnManager) getConn(userID sf.ID) (*wsConn, bool) {
m.l.RLock()
defer m.l.RUnlock()
client, exists := m.pool[userID]
return client, exists
}
func (m *WsConnManager) Send(ctx context.Context, receiverID xsf.ID, payload *WsMessage) error {
func (m *WsConnManager) Send(ctx context.Context, receiverID sf.ID, payload *WsMessage) error {
conn, exists := m.getConn(receiverID)
if exists {
if err := conn.send(ctx, payload); err != nil {
......@@ -239,7 +239,7 @@ func (c *wsConn) writeLoop() {
}
type WsMsg struct {
senderID xsf.ID
senderID sf.ID
msgType int
msg []byte
}
......@@ -290,6 +290,6 @@ const (
type WsMessage struct {
Seq string `json:"seq"`
Cmd Cmd `json:"cmd"`
ReceiverID xsf.ID `json:"receiverID"`
ReceiverID sf.ID `json:"receiverID"`
Data json.RawMessage `json:"payload"` // 原始JSON,目前是models.ChatMessage
}
package xcommon
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xtype"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type IConverter[ID xtype.Key, T, B any] interface {
......@@ -25,11 +25,11 @@ func (x *CommonBiz[ID, T, B]) NewSliceFromModelsBiz(ms []*T) []*B {
return ret
}
func (x *CommonBiz[ID, T, B]) NewMapFromModelMapBiz(idMap map[xsf.ID]*T) map[xsf.ID]*B {
func (x *CommonBiz[ID, T, B]) NewMapFromModelMapBiz(idMap map[sf.ID]*T) map[sf.ID]*B {
if len(idMap) == 0 {
return nil
}
ret := make(map[xsf.ID]*B, len(idMap))
ret := make(map[sf.ID]*B, len(idMap))
var bt B
for k, v := range idMap {
ret[k] = bt.NewFromModel(v)
......@@ -37,11 +37,11 @@ func (x *CommonBiz[ID, T, B]) NewMapFromModelMapBiz(idMap map[xsf.ID]*T) map[xsf
return ret
}
func (x *CommonBiz[ID, T, B]) NewMapSliceFromModelMapSliceBiz(idMapSlice map[xsf.ID][]*T) map[xsf.ID][]*B {
func (x *CommonBiz[ID, T, B]) NewMapSliceFromModelMapSliceBiz(idMapSlice map[sf.ID][]*T) map[sf.ID][]*B {
if len(idMapSlice) == 0 {
return nil
}
ret := make(map[xsf.ID][]*B, len(idMapSlice))
ret := make(map[sf.ID][]*B, len(idMapSlice))
for k, v := range idMapSlice {
ret[k] = x.NewSliceFromModelsBiz(v)
}
......@@ -70,7 +70,7 @@ func (x *CommonBiz[ID, T, B]) SliceToIDMapBiz(rs []*B) map[ID]*B {
return ret
}
func (x *CommonBiz[ID, T, B]) IDMapToSliceBiz(m map[xsf.ID]*B) []*B {
func (x *CommonBiz[ID, T, B]) IDMapToSliceBiz(m map[sf.ID]*B) []*B {
if len(m) == 0 {
return nil
}
......@@ -81,7 +81,7 @@ func (x *CommonBiz[ID, T, B]) IDMapToSliceBiz(m map[xsf.ID]*B) []*B {
return ret
}
func (x *CommonBiz[ID, T, B]) IDMapSliceToSliceBiz(m map[xsf.ID][]*B) []*B {
func (x *CommonBiz[ID, T, B]) IDMapSliceToSliceBiz(m map[sf.ID][]*B) []*B {
if len(m) == 0 {
return nil
}
......
......@@ -10,9 +10,9 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/cache"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/encoding"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
utils "gitlab.wanzhuangkj.com/tush/xpkg/xutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
const (
......@@ -27,7 +27,7 @@ func getCacheKey(prefix string, id int64) string {
}
type IID interface {
GetID() xsf.ID
GetID() sf.ID
TableName() string
}
......@@ -60,7 +60,7 @@ func NewCache[T IID](cacheType string, prefix string, d time.Duration) *OCache[T
return nil
}
func (x *OCache[T]) Set(ctx context.Context, id xsf.ID, data *T, duration time.Duration) error {
func (x *OCache[T]) Set(ctx context.Context, id sf.ID, data *T, duration time.Duration) error {
if x.Cache == nil {
return nil
}
......@@ -74,7 +74,7 @@ func (x *OCache[T]) Set(ctx context.Context, id xsf.ID, data *T, duration time.D
return nil
}
func (x *OCache[T]) Get(ctx context.Context, id xsf.ID) (*T, error) {
func (x *OCache[T]) Get(ctx context.Context, id sf.ID) (*T, error) {
if x.Cache == nil {
return nil, nil
}
......@@ -103,7 +103,7 @@ func (x *OCache[T]) MultiSet(ctx context.Context, data []*T, duration time.Durat
return nil
}
func (x *OCache[T]) MultiGet(ctx context.Context, ids []xsf.ID) (map[xsf.ID]int, map[xsf.ID]*T, error) {
func (x *OCache[T]) MultiGet(ctx context.Context, ids []sf.ID) (map[sf.ID]int, map[sf.ID]*T, error) {
if x.Cache == nil {
return nil, nil, nil
}
......@@ -119,8 +119,8 @@ func (x *OCache[T]) MultiGet(ctx context.Context, ids []xsf.ID) (map[xsf.ID]int,
if err != nil {
return nil, nil, xerror.NewCacheError(err.Error())
}
retMap := make(map[xsf.ID]*T)
hasMap := make(map[xsf.ID]int)
retMap := make(map[sf.ID]*T)
hasMap := make(map[sf.ID]int)
for i, id := range ids {
item := items[i]
hasMap[id] = 0
......@@ -138,7 +138,7 @@ func (x *OCache[T]) MultiGet(ctx context.Context, ids []xsf.ID) (map[xsf.ID]int,
return hasMap, retMap, nil
}
func (x *OCache[T]) Del(ctx context.Context, id xsf.ID) error {
func (x *OCache[T]) Del(ctx context.Context, id sf.ID) error {
cacheKey := x.KeyPrefix + utils.Int64ToStr(id.Int64())
if err := x.Cache.Del(ctx, cacheKey); err != nil {
return xerror.NewCacheError(err.Error())
......@@ -146,7 +146,7 @@ func (x *OCache[T]) Del(ctx context.Context, id xsf.ID) error {
return nil
}
func (x *OCache[T]) Dels(ctx context.Context, ids []xsf.ID) error {
func (x *OCache[T]) Dels(ctx context.Context, ids []sf.ID) error {
if len(ids) == 0 {
return nil
}
......@@ -161,7 +161,7 @@ func (x *OCache[T]) Dels(ctx context.Context, ids []xsf.ID) error {
return nil
}
func (x *OCache[T]) SetPlaceholder(ctx context.Context, id xsf.ID) error {
func (x *OCache[T]) SetPlaceholder(ctx context.Context, id sf.ID) error {
cacheKey := x.KeyPrefix + utils.Int64ToStr(id.Int64())
if err := x.Cache.SetCacheWithNotFound(ctx, cacheKey); err != nil {
return xerror.NewCacheError(err.Error())
......
......@@ -8,6 +8,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/database"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/goredis"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
......@@ -15,7 +16,6 @@ import (
utils "gitlab.wanzhuangkj.com/tush/xpkg/xutils"
ctxutils "gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
setutils "gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"golang.org/x/sync/singleflight"
"gorm.io/gorm"
olog "gorm.io/gorm/logger"
......@@ -43,7 +43,7 @@ func NewDao[T ocache.IID](schema string) *ODao[T] {
}
}
func (x *ODao[T]) deleteCache(ctx context.Context, id xsf.ID) error {
func (x *ODao[T]) deleteCache(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -53,7 +53,7 @@ func (x *ODao[T]) deleteCache(ctx context.Context, id xsf.ID) error {
return nil
}
func (x *ODao[T]) deleteCaches(ctx context.Context, ids []xsf.ID) error {
func (x *ODao[T]) deleteCaches(ctx context.Context, ids []sf.ID) error {
if len(ids) == 0 {
return nil
}
......@@ -123,8 +123,8 @@ func (x *ODao[T]) CreateSliceTx(ctx context.Context, tx *gorm.DB, tbs []*T) erro
return nil
}
func (x *ODao[T]) getIDs(tbs []*T) []xsf.ID {
idsSet := setutils.NewSet[xsf.ID]()
func (x *ODao[T]) getIDs(tbs []*T) []sf.ID {
idsSet := setutils.NewSet[sf.ID]()
for _, r := range tbs {
if id := (*r).GetID(); id > 0 {
idsSet.Add(id)
......@@ -133,21 +133,21 @@ func (x *ODao[T]) getIDs(tbs []*T) []xsf.ID {
return idsSet.Slice()
}
func (x *ODao[T]) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *ODao[T]) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
return x.DeleteByIDTx(ctx, x.DB(), id)
}
func (x *ODao[T]) DeleteByIDs(ctx context.Context, ids []xsf.ID) error {
func (x *ODao[T]) DeleteByIDs(ctx context.Context, ids []sf.ID) error {
if len(ids) == 0 {
return nil
}
return x.DeleteByIDsTx(ctx, x.DB(), ids)
}
func (x *ODao[T]) DeleteByIDTx(ctx context.Context, tx *gorm.DB, id xsf.ID) error {
func (x *ODao[T]) DeleteByIDTx(ctx context.Context, tx *gorm.DB, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -159,7 +159,7 @@ func (x *ODao[T]) DeleteByIDTx(ctx context.Context, tx *gorm.DB, id xsf.ID) erro
return nil
}
func (x *ODao[T]) DeleteByIDsTx(ctx context.Context, tx *gorm.DB, ids []xsf.ID) error {
func (x *ODao[T]) DeleteByIDsTx(ctx context.Context, tx *gorm.DB, ids []sf.ID) error {
if len(ids) == 0 {
return nil
}
......@@ -171,7 +171,7 @@ func (x *ODao[T]) DeleteByIDsTx(ctx context.Context, tx *gorm.DB, ids []xsf.ID)
return nil
}
func (x *ODao[T]) UpdateByID(ctx context.Context, id xsf.ID, tb any) error {
func (x *ODao[T]) UpdateByID(ctx context.Context, id sf.ID, tb any) error {
if id <= 0 {
return nil
}
......@@ -181,7 +181,7 @@ func (x *ODao[T]) UpdateByID(ctx context.Context, id xsf.ID, tb any) error {
return nil
}
func (x *ODao[T]) UpdateByIDSilent(ctx context.Context, id xsf.ID, tb any) error {
func (x *ODao[T]) UpdateByIDSilent(ctx context.Context, id sf.ID, tb any) error {
if id <= 0 {
return nil
}
......@@ -191,7 +191,7 @@ func (x *ODao[T]) UpdateByIDSilent(ctx context.Context, id xsf.ID, tb any) error
return nil
}
func (x *ODao[T]) UpdateByIDs(ctx context.Context, ids []xsf.ID, tb any) error {
func (x *ODao[T]) UpdateByIDs(ctx context.Context, ids []sf.ID, tb any) error {
if len(ids) == 0 {
return nil
}
......@@ -201,7 +201,7 @@ func (x *ODao[T]) UpdateByIDs(ctx context.Context, ids []xsf.ID, tb any) error {
return nil
}
func (x *ODao[T]) UpdateByIDTx(ctx context.Context, tx *gorm.DB, id xsf.ID, tb any) error {
func (x *ODao[T]) UpdateByIDTx(ctx context.Context, tx *gorm.DB, id sf.ID, tb any) error {
return x.updByIDTx(ctx, tx, id, tb)
}
......@@ -209,7 +209,7 @@ func (x *ODao[T]) UpdateByIDTx(ctx context.Context, tx *gorm.DB, id xsf.ID, tb a
// id 必传
// upd 可以是struct、map
// Updates 方法支持 struct 和 map[string]any 参数。当使用 struct 更新时,默认情况下GORM 只会更新非零值的字段
func (x *ODao[T]) updByIDTx(ctx context.Context, tx *gorm.DB, id xsf.ID, upd any) error {
func (x *ODao[T]) updByIDTx(ctx context.Context, tx *gorm.DB, id sf.ID, upd any) error {
if id <= 0 {
return nil
}
......@@ -221,7 +221,7 @@ func (x *ODao[T]) updByIDTx(ctx context.Context, tx *gorm.DB, id xsf.ID, upd any
return nil
}
func (x *ODao[T]) UpdateByIDsTx(ctx context.Context, tx *gorm.DB, ids []xsf.ID, tb any) error {
func (x *ODao[T]) UpdateByIDsTx(ctx context.Context, tx *gorm.DB, ids []sf.ID, tb any) error {
return x.updByIDsTx(ctx, tx, ids, tb)
}
......@@ -257,7 +257,7 @@ func (x *ODao[T]) UpdateByIDsTx(ctx context.Context, tx *gorm.DB, ids []xsf.ID,
// Save - 生成更新所有字段的SQL
// SQL: UPDATE users SET name = '张三', age = 30, email = ”, address = ”, ...所有字段 WHERE id = 1;
// db.Save(&user)
func (x *ODao[T]) updByIDsTx(ctx context.Context, tx *gorm.DB, ids []xsf.ID, upd any) error {
func (x *ODao[T]) updByIDsTx(ctx context.Context, tx *gorm.DB, ids []sf.ID, upd any) error {
if len(ids) == 0 {
return nil
}
......@@ -276,7 +276,7 @@ func (x *ODao[T]) GetAll(ctx context.Context) (records []*T, err error) {
return records, nil
}
func (x *ODao[T]) GetSliceByIDs(ctx context.Context, ids []xsf.ID) (rs []*T, err error) {
func (x *ODao[T]) GetSliceByIDs(ctx context.Context, ids []sf.ID) (rs []*T, err error) {
m, err := x.GetMapByIDs(ctx, ids)
if err != nil {
return nil, err
......@@ -348,7 +348,7 @@ func (x *ODao[T]) GetSliceByCondition(ctx context.Context, c *query.Conditions)
return rs, nil
}
func (x *ODao[T]) GetSliceByLastID(ctx context.Context, lastID xsf.ID, limit int, sort string) (rs []*T, err error) {
func (x *ODao[T]) GetSliceByLastID(ctx context.Context, lastID sf.ID, limit int, sort string) (rs []*T, err error) {
if lastID == 0 || limit == 0 {
return nil, nil
}
......@@ -409,7 +409,7 @@ func (x *ODao[T]) CountByWhere(ctx context.Context, where any) (count int64, err
return count, nil
}
func (x *ODao[T]) GetByID(ctx context.Context, id xsf.ID) (record *T, err error) {
func (x *ODao[T]) GetByID(ctx context.Context, id sf.ID) (record *T, err error) {
if id == 0 {
return nil, nil
}
......@@ -458,7 +458,7 @@ func (x *ODao[T]) GetByID(ctx context.Context, id xsf.ID) (record *T, err error)
return nil, err
}
func (x *ODao[T]) GetMapByIDs(ctx context.Context, ids []xsf.ID) (itemMap map[xsf.ID]*T, err error) {
func (x *ODao[T]) GetMapByIDs(ctx context.Context, ids []sf.ID) (itemMap map[sf.ID]*T, err error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -467,7 +467,7 @@ func (x *ODao[T]) GetMapByIDs(ctx context.Context, ids []xsf.ID) (itemMap map[xs
if err := x.DB().WithContext(ctx).Where("id IN (?)", ids).Find(&records).Error; err != nil {
return nil, xerror.NewDBError(err.Error())
}
itemMap = make(map[xsf.ID]*T)
itemMap = make(map[sf.ID]*T)
for _, record := range records {
itemMap[(*record).GetID()] = record
}
......@@ -477,7 +477,7 @@ func (x *ODao[T]) GetMapByIDs(ctx context.Context, ids []xsf.ID) (itemMap map[xs
if err != nil {
return nil, err
}
var missedIDs []xsf.ID
var missedIDs []sf.ID
for k, v := range hasMap {
if v == 0 {
missedIDs = append(missedIDs, k)
......@@ -488,7 +488,7 @@ func (x *ODao[T]) GetMapByIDs(ctx context.Context, ids []xsf.ID) (itemMap map[xs
if err = x.DB().WithContext(ctx).Where("id IN (?)", missedIDs).Find(&records).Error; err != nil {
return nil, xerror.NewDBError(err.Error())
}
var recordIDMap = make(map[xsf.ID]struct{})
var recordIDMap = make(map[sf.ID]struct{})
if len(records) > 0 {
for _, record := range records {
itemMap[(*record).GetID()] = record
......
package xmodels
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
ctxutils "gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
setutils "gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
type CommonModel struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1234567890123456789" csv:"主键ID"` //主键
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20);primaryKey;autoIncrement;comment:主键" example:"1234567890123456789" csv:"主键ID"` //主键
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2025-09-18 10:05:00" csv:"创建时间"` //创建时间
UpdatedAt xtime.DateTime `json:"updatedAt" form:"updatedAt" gorm:"column:updated_at;type:datetime;comment:更新时间" example:"2025-09-18 10:05:00" csv:"更新时间"` //更新时间
}
func (x CommonModel) GetID() xsf.ID {
func (x CommonModel) GetID() sf.ID {
return x.ID
}
func (x CommonModel) GetOrder() string {
......@@ -35,17 +35,17 @@ func (x *CommonModel) BeforeUpdate(tx *gorm.DB) (err error) {
return nil
}
func GetUid(tx *gorm.DB) xsf.ID {
func GetUid(tx *gorm.DB) sf.ID {
ctx := tx.Statement.Context
return ctxutils.GetCtxUID(ctx)
}
type IModel interface {
GetID() xsf.ID
GetID() sf.ID
}
func GetIDs[T IModel](rs []*T) []xsf.ID {
st := setutils.NewSet[xsf.ID]()
func GetIDs[T IModel](rs []*T) []sf.ID {
st := setutils.NewSet[sf.ID]()
for _, v := range rs {
st.Add((*v).GetID())
}
......@@ -60,15 +60,15 @@ func StrMapToSlice[T any](m map[string]*T) []*T {
return rs
}
func GetStrMapIDs[T IModel](m map[string]*T) []xsf.ID {
st := setutils.NewSet[xsf.ID]()
func GetStrMapIDs[T IModel](m map[string]*T) []sf.ID {
st := setutils.NewSet[sf.ID]()
for _, v := range m {
st.Add((*v).GetID())
}
return st.Slice()
}
func IDMapToSlice[T any](m map[xsf.ID]*T) []*T {
func IDMapToSlice[T any](m map[sf.ID]*T) []*T {
var rs []*T
for _, r := range m {
rs = append(rs, r)
......@@ -76,23 +76,23 @@ func IDMapToSlice[T any](m map[xsf.ID]*T) []*T {
return rs
}
func GetIDMapIDs[T IModel](m map[xsf.ID]*T) []xsf.ID {
st := setutils.NewSet[xsf.ID]()
func GetIDMapIDs[T IModel](m map[sf.ID]*T) []sf.ID {
st := setutils.NewSet[sf.ID]()
for _, v := range m {
st.Add((*v).GetID())
}
return st.Slice()
}
func SliceToIDMap[T IModel](rs []*T) map[xsf.ID]*T {
m := make(map[xsf.ID]*T)
func SliceToIDMap[T IModel](rs []*T) map[sf.ID]*T {
m := make(map[sf.ID]*T)
for _, r := range rs {
m[(*r).GetID()] = r
}
return m
}
func IDMapSliceToSlice[T any](m map[xsf.ID][]*T) []*T {
func IDMapSliceToSlice[T any](m map[sf.ID][]*T) []*T {
var rs []*T
for _, r := range m {
rs = append(rs, r...)
......@@ -100,8 +100,8 @@ func IDMapSliceToSlice[T any](m map[xsf.ID][]*T) []*T {
return rs
}
func GetIDMapSliceIDs[T IModel](m map[xsf.ID][]*T) []xsf.ID {
st := setutils.NewSet[xsf.ID]()
func GetIDMapSliceIDs[T IModel](m map[sf.ID][]*T) []sf.ID {
st := setutils.NewSet[sf.ID]()
for _, rs := range m {
for _, r := range rs {
st.Add((*r).GetID())
......
......@@ -5,15 +5,15 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
type CronJob struct {
models.CronJob
xcommon.CommonBiz[xsf.ID, models.CronJob, CronJob]
xcommon.CommonBiz[sf.ID, models.CronJob, CronJob]
CronJobInfo *models.CronJobInfo
}
......@@ -35,7 +35,7 @@ func (x *CronJob) ParseJobInfo() {
var CronJobTool = &CronJob{}
func (*CronJob) GetIDs(rs []*CronJob) []xsf.ID {
func (*CronJob) GetIDs(rs []*CronJob) []sf.ID {
return sliceutils.GetIDs(rs)
}
......
package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type CronJobLog struct {
models.CronJobLog
xcommon.CommonBiz[xsf.ID, models.CronJobLog, CronJobLog]
xcommon.CommonBiz[sf.ID, models.CronJobLog, CronJobLog]
}
var CronJobLogTool = &CronJobLog{}
func (*CronJobLog) GetIDs(rs []*CronJobLog) []xsf.ID {
func (*CronJobLog) GetIDs(rs []*CronJobLog) []sf.ID {
return sliceutils.GetIDs(rs)
}
func (x *CronJobLog) GetJobIDs(rs []*CronJobLog) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *CronJobLog) GetJobIDs(rs []*CronJobLog) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetJobID())
}
......
......@@ -3,24 +3,24 @@ package biz
import (
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type CronJobRecord struct {
models.CronJobRecord
xcommon.CommonBiz[xsf.ID, models.CronJobRecord, CronJobRecord]
xcommon.CommonBiz[sf.ID, models.CronJobRecord, CronJobRecord]
}
var CronJobRecordTool = &CronJobRecord{}
func (*CronJobRecord) GetIDs(rs []*CronJobRecord) []xsf.ID {
func (*CronJobRecord) GetIDs(rs []*CronJobRecord) []sf.ID {
return sliceutils.GetIDs(rs)
}
func (x *CronJobRecord) GetJobIDs(rs []*CronJobRecord) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *CronJobRecord) GetJobIDs(rs []*CronJobRecord) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetJobID())
}
......
......@@ -7,8 +7,8 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"golang.org/x/sync/singleflight"
"gorm.io/gorm"
glogger "gorm.io/gorm/logger"
......@@ -88,7 +88,7 @@ func (x *cronJobDao) GetMapSliceByEnables(ctx context.Context, order string, ena
return cronJobMapSlice, len(cronJobs), nil
}
func (x *cronJobDao) GetNotRunning(ctx context.Context, id xsf.ID) (*models.CronJob, error) {
func (x *cronJobDao) GetNotRunning(ctx context.Context, id sf.ID) (*models.CronJob, error) {
result := x.DB().Session(&gorm.Session{Logger: glogger.Discard}).WithContext(ctx).Model(&models.CronJob{}).
Where("state = ?", enums.CronJob_State_NOT_RUNNING).Where("id = ?", id).
Update("state", enums.CronJob_State_RUNNING)
......
......@@ -3,9 +3,9 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"golang.org/x/sync/singleflight"
)
......@@ -20,14 +20,14 @@ var CronJobLogDao = &cronJobLogDao{
},
}
func (x *cronJobLogDao) GetSliceByJobID(ctx context.Context, order string, jobID xsf.ID) ([]*models.CronJobLog, error) {
func (x *cronJobLogDao) GetSliceByJobID(ctx context.Context, order string, jobID sf.ID) ([]*models.CronJobLog, error) {
if jobID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "job_id = ?", jobID)
}
func (x *cronJobLogDao) GetSliceByJobIDs(ctx context.Context, order string, jobIDs []xsf.ID) ([]*models.CronJobLog, error) {
func (x *cronJobLogDao) GetSliceByJobIDs(ctx context.Context, order string, jobIDs []sf.ID) ([]*models.CronJobLog, error) {
if len(jobIDs) == 0 {
return nil, nil
}
......@@ -38,7 +38,7 @@ func (x *cronJobLogDao) GetSliceByJobIDs(ctx context.Context, order string, jobI
return cronJobLogs, nil
}
func (x *cronJobLogDao) GetMapSliceByJobIDs(ctx context.Context, order string, jobIDs []xsf.ID) (map[xsf.ID][]*models.CronJobLog, int, error) {
func (x *cronJobLogDao) GetMapSliceByJobIDs(ctx context.Context, order string, jobIDs []sf.ID) (map[sf.ID][]*models.CronJobLog, int, error) {
if len(jobIDs) == 0 {
return nil, 0, nil
}
......@@ -46,7 +46,7 @@ func (x *cronJobLogDao) GetMapSliceByJobIDs(ctx context.Context, order string, j
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.CronJobLog)
itemMap := make(map[sf.ID][]*models.CronJobLog)
for _, record := range cronJobLogs {
itemMap[record.JobID] = append(itemMap[record.JobID], record)
}
......
......@@ -3,9 +3,9 @@ package dao
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/odao"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"golang.org/x/sync/singleflight"
)
......@@ -20,14 +20,14 @@ var CronJobRecordDao = &cronJobRecordDao{
},
}
func (x *cronJobRecordDao) GetSliceByJobID(ctx context.Context, order string, jobID xsf.ID) ([]*models.CronJobRecord, error) {
func (x *cronJobRecordDao) GetSliceByJobID(ctx context.Context, order string, jobID sf.ID) ([]*models.CronJobRecord, error) {
if jobID <= 0 {
return nil, nil
}
return x.GetOrderSliceByWhere(ctx, order, "job_id = ?", jobID)
}
func (x *cronJobRecordDao) GetSliceByJobIDs(ctx context.Context, order string, jobIDs []xsf.ID) ([]*models.CronJobRecord, error) {
func (x *cronJobRecordDao) GetSliceByJobIDs(ctx context.Context, order string, jobIDs []sf.ID) ([]*models.CronJobRecord, error) {
if len(jobIDs) == 0 {
return nil, nil
}
......@@ -38,7 +38,7 @@ func (x *cronJobRecordDao) GetSliceByJobIDs(ctx context.Context, order string, j
return cronJobRecords, nil
}
func (x *cronJobRecordDao) GetMapSliceByJobIDs(ctx context.Context, order string, jobIDs []xsf.ID) (map[xsf.ID][]*models.CronJobRecord, int, error) {
func (x *cronJobRecordDao) GetMapSliceByJobIDs(ctx context.Context, order string, jobIDs []sf.ID) (map[sf.ID][]*models.CronJobRecord, int, error) {
if len(jobIDs) == 0 {
return nil, 0, nil
}
......@@ -46,7 +46,7 @@ func (x *cronJobRecordDao) GetMapSliceByJobIDs(ctx context.Context, order string
if err != nil {
return nil, 0, err
}
itemMap := make(map[xsf.ID][]*models.CronJobRecord)
itemMap := make(map[sf.ID][]*models.CronJobRecord)
for _, record := range cronJobRecords {
itemMap[record.JobID] = append(itemMap[record.JobID], record)
}
......
......@@ -5,14 +5,14 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// CronJob 定时任务
type CronJob struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"101"` //主键
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"101"` //主键
JobName string `json:"jobName" form:"jobName" gorm:"column:job_name;type:varchar(128);comment:定时任务名称" example:"任务-自动确认订单"` //定时任务名称
JobCode string `json:"jobCode" form:"jobCode" gorm:"column:job_code;type:varchar(128);comment:定时任务code" example:"autoConfirmOrdersTask"` //定时任务code
TimeSpec string `json:"timeSpec" form:"timeSpec" gorm:"column:time_spec;type:varchar(128);comment:定时任务时间表达式" example:"0 0 0 * * ?"` //定时任务时间表达式
......@@ -35,7 +35,7 @@ func (CronJob) TableName() string {
return TBCronJob
}
func (x CronJob) GetID() xsf.ID {
func (x CronJob) GetID() sf.ID {
return x.ID
}
......
package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// CronJobLog 定时任务日志
type CronJobLog struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"101"` //主键
JobID xsf.ID `json:"jobID" form:"jobID" swaggertype:"string" gorm:"column:job_id;type:bigint(20) unsigned;comment:job ID" example:"101"` //job ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"101"` //主键
JobID sf.ID `json:"jobID" form:"jobID" swaggertype:"string" gorm:"column:job_id;type:bigint(20) unsigned;comment:job ID" example:"101"` //job ID
Info string `json:"info" form:"info" gorm:"column:info;type:text;comment:日志" example:"job occur error..."` //日志
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2025-01-07 12:20:43"` //创建时间
}
......@@ -23,18 +23,18 @@ func (CronJobLog) TableName() string {
return TBCronJobLog
}
func (x CronJobLog) GetID() xsf.ID {
func (x CronJobLog) GetID() sf.ID {
return x.ID
}
func (x *CronJobLog) Init() *CronJobLog {
return x
}
func (x *CronJobLog) GetJobID() xsf.ID {
func (x *CronJobLog) GetJobID() sf.ID {
return x.JobID
}
func (x *CronJobLog) GetJobIDs(rs []*CronJobLog) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *CronJobLog) GetJobIDs(rs []*CronJobLog) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetJobID())
}
......
package models
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/setutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
)
// CronJobRecord 定时任务运行记录
type CronJobRecord struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"101"` //主键
JobID xsf.ID `json:"jobID" form:"jobID" swaggertype:"string" gorm:"column:job_id;type:bigint(20) unsigned;comment:job ID" example:"101"` //job ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"101"` //主键
JobID sf.ID `json:"jobID" form:"jobID" swaggertype:"string" gorm:"column:job_id;type:bigint(20) unsigned;comment:job ID" example:"101"` //job ID
BeginTime xtime.DateTime `json:"beginTime" form:"beginTime" gorm:"column:begin_time;type:datetime;default:CURRENT_TIMESTAMP;comment:开始时间" example:"2025-01-07 12:20:43"` //开始时间
EndTime xtime.DateTime `json:"endTime" form:"endTime" gorm:"column:end_time;type:datetime;default:CURRENT_TIMESTAMP;comment:结束时间" example:"2025-01-07 12:20:43"` //结束时间
Info string `json:"info" form:"info" gorm:"column:info;type:text;comment:额外信息" example:""` //额外信息
......@@ -26,18 +26,18 @@ func (CronJobRecord) TableName() string {
return TBCronJobRecord
}
func (x CronJobRecord) GetID() xsf.ID {
func (x CronJobRecord) GetID() sf.ID {
return x.ID
}
func (x *CronJobRecord) Init() *CronJobRecord {
return x
}
func (x *CronJobRecord) GetJobID() xsf.ID {
func (x *CronJobRecord) GetJobID() sf.ID {
return x.JobID
}
func (x *CronJobRecord) GetJobIDs(rs []*CronJobRecord) []xsf.ID {
set := setutils.NewSet[xsf.ID]()
func (x *CronJobRecord) GetJobIDs(rs []*CronJobRecord) []sf.ID {
set := setutils.NewSet[sf.ID]()
for _, r := range rs {
set.Add(r.GetJobID())
}
......
......@@ -4,13 +4,13 @@ import (
"context"
"fmt"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/dao"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/types"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"github.com/jinzhu/copier"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
......@@ -38,11 +38,11 @@ func (x *cronJobService) GetByJobCode(ctx context.Context, jobCode string) (*biz
return x.ToBiz(ctx, cronJob)
}
func (x *cronJobService) GetNotRunning(ctx context.Context, id xsf.ID) (*models.CronJob, error) {
func (x *cronJobService) GetNotRunning(ctx context.Context, id sf.ID) (*models.CronJob, error) {
return dao.CronJobDao.GetNotRunning(ctx, id)
}
func (x *cronJobService) Create(ctx context.Context, req *types.CronJobCreateReq) (id xsf.ID, err error) {
func (x *cronJobService) Create(ctx context.Context, req *types.CronJobCreateReq) (id sf.ID, err error) {
cronJob := &models.CronJob{}
_ = copier.Copy(cronJob, req)
if err = dao.CronJobDao.Create(ctx, cronJob); err != nil {
......@@ -51,7 +51,7 @@ func (x *cronJobService) Create(ctx context.Context, req *types.CronJobCreateReq
return cronJob.ID, nil
}
func (x *cronJobService) DeleteByID(ctx context.Context, id xsf.ID) error {
func (x *cronJobService) DeleteByID(ctx context.Context, id sf.ID) error {
if id <= 0 {
return nil
}
......@@ -65,7 +65,7 @@ func (x *cronJobService) DeleteByID(ctx context.Context, id xsf.ID) error {
return dao.CronJobDao.DeleteByID(ctx, id)
}
func (x *cronJobService) DeleteByIDs(ctx context.Context, ids []xsf.ID) error {
func (x *cronJobService) DeleteByIDs(ctx context.Context, ids []sf.ID) error {
if len(ids) == 0 {
return nil
}
......@@ -80,7 +80,7 @@ func (x *cronJobService) DeleteByIDs(ctx context.Context, ids []xsf.ID) error {
return dao.CronJobDao.DeleteByIDs(ctx, ids)
}
func (x *cronJobService) StartByID(ctx context.Context, id xsf.ID) error {
func (x *cronJobService) StartByID(ctx context.Context, id sf.ID) error {
req := &types.CronJobUpdateByIDReq{
ID: id,
Enable: enums.CronJob_Enable_OPEN,
......@@ -88,7 +88,7 @@ func (x *cronJobService) StartByID(ctx context.Context, id xsf.ID) error {
return x.UpdateByID(ctx, req)
}
func (x *cronJobService) StopByID(ctx context.Context, id xsf.ID) error {
func (x *cronJobService) StopByID(ctx context.Context, id sf.ID) error {
req := &types.CronJobUpdateByIDReq{
ID: id,
Enable: enums.CronJob_Enable_CLOSE,
......@@ -129,7 +129,7 @@ func (x *cronJobService) UpdateByIDs(ctx context.Context, req *types.CronJobUpda
return dao.CronJobDao.UpdateByIDs(ctx, req.IDs, cronJobUpd)
}
func (x *cronJobService) GetByID(ctx context.Context, id xsf.ID) (cronJobBiz *biz.CronJob, err error) {
func (x *cronJobService) GetByID(ctx context.Context, id sf.ID) (cronJobBiz *biz.CronJob, err error) {
if id <= 0 {
return nil, nil
}
......@@ -143,7 +143,7 @@ func (x *cronJobService) GetByID(ctx context.Context, id xsf.ID) (cronJobBiz *bi
return x.ToBiz(ctx, cronJob)
}
func (x *cronJobService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.CronJob, error) {
func (x *cronJobService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.CronJob, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -157,7 +157,7 @@ func (x *cronJobService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*bi
return x.ToSliceBiz(ctx, cronJobs)
}
func (x *cronJobService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.CronJob, error) {
func (x *cronJobService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.CronJob, error) {
if len(ids) == 0 {
return nil, nil
}
......
......@@ -3,12 +3,12 @@ package service
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/dao"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/types"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type cronJobLogService struct {
......@@ -23,7 +23,7 @@ func newCronJobLogService() *cronJobLogService {
}
}
func (x *cronJobLogService) GetByID(ctx context.Context, id xsf.ID) (cronJobLogBiz *biz.CronJobLog, err error) {
func (x *cronJobLogService) GetByID(ctx context.Context, id sf.ID) (cronJobLogBiz *biz.CronJobLog, err error) {
if id <= 0 {
return nil, nil
}
......@@ -37,7 +37,7 @@ func (x *cronJobLogService) GetByID(ctx context.Context, id xsf.ID) (cronJobLogB
return x.ToBiz(ctx, cronJobLog)
}
func (x *cronJobLogService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.CronJobLog, error) {
func (x *cronJobLogService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.CronJobLog, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -51,7 +51,7 @@ func (x *cronJobLogService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]
return x.ToSliceBiz(ctx, cronJobLogs)
}
func (x *cronJobLogService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.CronJobLog, error) {
func (x *cronJobLogService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.CronJobLog, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -80,7 +80,7 @@ func (x *cronJobLogService) Page(ctx context.Context, req *types.CronJobLogPageR
}
return cronJobLogBizSlice, total, nil
}
func (x *cronJobLogService) GetSliceByJobID(ctx context.Context, jobID xsf.ID) ([]*biz.CronJobLog, error) {
func (x *cronJobLogService) GetSliceByJobID(ctx context.Context, jobID sf.ID) ([]*biz.CronJobLog, error) {
if jobID == 0 {
return nil, nil
}
......@@ -94,7 +94,7 @@ func (x *cronJobLogService) GetSliceByJobID(ctx context.Context, jobID xsf.ID) (
return x.ToSliceBiz(ctx, cronJobLogs)
}
func (x *cronJobLogService) GetSliceByJobIDs(ctx context.Context, jobIDs []xsf.ID) ([]*biz.CronJobLog, error) {
func (x *cronJobLogService) GetSliceByJobIDs(ctx context.Context, jobIDs []sf.ID) ([]*biz.CronJobLog, error) {
if len(jobIDs) == 0 {
return nil, nil
}
......@@ -108,7 +108,7 @@ func (x *cronJobLogService) GetSliceByJobIDs(ctx context.Context, jobIDs []xsf.I
return x.ToSliceBiz(ctx, cronJobLogs)
}
func (x *cronJobLogService) GetMapSliceByJobIDs(ctx context.Context, jobIDs []xsf.ID) (map[xsf.ID][]*biz.CronJobLog, int, error) {
func (x *cronJobLogService) GetMapSliceByJobIDs(ctx context.Context, jobIDs []sf.ID) (map[sf.ID][]*biz.CronJobLog, int, error) {
if len(jobIDs) == 0 {
return nil, 0, nil
}
......@@ -119,7 +119,7 @@ func (x *cronJobLogService) GetMapSliceByJobIDs(ctx context.Context, jobIDs []xs
if len(cronJobLogBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.CronJobLog)
ret := make(map[sf.ID][]*biz.CronJobLog)
for _, r := range cronJobLogBizSlice {
ret[r.JobID] = append(ret[r.JobID], r)
}
......
......@@ -3,12 +3,12 @@ package service
import (
"context"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/dao"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/types"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
type cronJobRecordService struct {
......@@ -23,7 +23,7 @@ func newCronJobRecordService() *cronJobRecordService {
}
}
func (x *cronJobRecordService) GetByID(ctx context.Context, id xsf.ID) (cronJobRecordBiz *biz.CronJobRecord, err error) {
func (x *cronJobRecordService) GetByID(ctx context.Context, id sf.ID) (cronJobRecordBiz *biz.CronJobRecord, err error) {
if id <= 0 {
return nil, nil
}
......@@ -34,7 +34,7 @@ func (x *cronJobRecordService) GetByID(ctx context.Context, id xsf.ID) (cronJobR
return x.ToBiz(ctx, cronJobRecord)
}
func (x *cronJobRecordService) GetSliceByIDs(ctx context.Context, ids []xsf.ID) ([]*biz.CronJobRecord, error) {
func (x *cronJobRecordService) GetSliceByIDs(ctx context.Context, ids []sf.ID) ([]*biz.CronJobRecord, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -48,7 +48,7 @@ func (x *cronJobRecordService) GetSliceByIDs(ctx context.Context, ids []xsf.ID)
return x.ToSliceBiz(ctx, cronJobRecords)
}
func (x *cronJobRecordService) GetMapByIDs(ctx context.Context, ids []xsf.ID) (map[xsf.ID]*biz.CronJobRecord, error) {
func (x *cronJobRecordService) GetMapByIDs(ctx context.Context, ids []sf.ID) (map[sf.ID]*biz.CronJobRecord, error) {
if len(ids) == 0 {
return nil, nil
}
......@@ -77,7 +77,7 @@ func (x *cronJobRecordService) Page(ctx context.Context, req *types.CronJobRecor
}
return cronJobRecordBizSlice, total, nil
}
func (x *cronJobRecordService) GetSliceByJobID(ctx context.Context, jobID xsf.ID) ([]*biz.CronJobRecord, error) {
func (x *cronJobRecordService) GetSliceByJobID(ctx context.Context, jobID sf.ID) ([]*biz.CronJobRecord, error) {
if jobID == 0 {
return nil, nil
}
......@@ -91,7 +91,7 @@ func (x *cronJobRecordService) GetSliceByJobID(ctx context.Context, jobID xsf.ID
return x.ToSliceBiz(ctx, cronJobRecords)
}
func (x *cronJobRecordService) GetSliceByJobIDs(ctx context.Context, jobIDs []xsf.ID) ([]*biz.CronJobRecord, error) {
func (x *cronJobRecordService) GetSliceByJobIDs(ctx context.Context, jobIDs []sf.ID) ([]*biz.CronJobRecord, error) {
if len(jobIDs) == 0 {
return nil, nil
}
......@@ -105,7 +105,7 @@ func (x *cronJobRecordService) GetSliceByJobIDs(ctx context.Context, jobIDs []xs
return x.ToSliceBiz(ctx, cronJobRecords)
}
func (x *cronJobRecordService) GetMapSliceByJobIDs(ctx context.Context, jobIDs []xsf.ID) (map[xsf.ID][]*biz.CronJobRecord, int, error) {
func (x *cronJobRecordService) GetMapSliceByJobIDs(ctx context.Context, jobIDs []sf.ID) (map[sf.ID][]*biz.CronJobRecord, int, error) {
if len(jobIDs) == 0 {
return nil, 0, nil
}
......@@ -116,7 +116,7 @@ func (x *cronJobRecordService) GetMapSliceByJobIDs(ctx context.Context, jobIDs [
if len(cronJobRecordBizSlice) == 0 {
return nil, 0, nil
}
ret := make(map[xsf.ID][]*biz.CronJobRecord)
ret := make(map[sf.ID][]*biz.CronJobRecord)
for _, r := range cronJobRecordBizSlice {
ret[r.JobID] = append(ret[r.JobID], r)
}
......
package types
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/enums"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
......@@ -41,7 +41,7 @@ func (x *CronJobGetByEnableReq) Valid() error {
}
type CronJobUpdateByIDReq struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"101"` //ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" validate:"required" example:"101"` //ID
JobName string `json:"jobName" form:"jobName" validate:"required" example:"任务-自动确认订单"` // 定时任务名称
JobCode string `json:"jobCode" form:"jobCode" validate:"required" example:"autoConfirmOrdersTask"` // 定时任务code
TimeSpec string `json:"timeSpec" form:"timeSpec" validate:"required" example:"0 0 0 * * ?"` // 定时任务时间表达式
......@@ -55,7 +55,7 @@ func (x *CronJobUpdateByIDReq) Valid() error {
}
type CronJobUpdateByIDsReq struct {
IDs []xsf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"101"` //ID
IDs []sf.ID `json:"ids" swaggertype:"array,string" form:"ids" validate:"required" example:"101"` //ID
JobName string `json:"jobName" form:"jobName" validate:"required" example:"任务-自动确认订单"` // 定时任务名称
JobCode string `json:"jobCode" form:"jobCode" validate:"required" example:"autoConfirmOrdersTask"` // 定时任务code
TimeSpec string `json:"timeSpec" form:"timeSpec" validate:"required" example:"0 0 0 * * ?"` // 定时任务时间表达式
......@@ -70,7 +70,7 @@ func (x *CronJobUpdateByIDsReq) Valid() error {
type CronJobPageReq struct {
query.Pagination
ID xsf.ID `json:"id" form:"id" swaggertype:"string" query:"" example:"101"` //ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" query:"" example:"101"` //ID
JobName string `json:"jobName" form:"jobName" query:"" example:"任务-自动确认订单"` // 定时任务名称
JobCode string `json:"jobCode" form:"jobCode" query:"" example:"autoConfirmOrdersTask"` // 定时任务code
TimeSpec string `json:"timeSpec" form:"timeSpec" query:"" example:"0 0 0 * * ?"` // 定时任务时间表达式
......
package types
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
var _ xtime.DateTime
type CronJobLogGetByJobIDReq struct {
JobID xsf.ID `json:"jobID" form:"jobID" swaggertype:"string" validate:"required" example:"101"` //job ID
JobID sf.ID `json:"jobID" form:"jobID" swaggertype:"string" validate:"required" example:"101"` //job ID
}
type CronJobLogPageReq struct {
query.Pagination
ID xsf.ID `json:"id" form:"id" swaggertype:"string" query:"" example:"101"` //ID
JobID xsf.ID `json:"jobID" form:"jobID" swaggertype:"string" query:"" example:"101"` // job ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" query:"" example:"101"` //ID
JobID sf.ID `json:"jobID" form:"jobID" swaggertype:"string" query:"" example:"101"` // job ID
Info string `json:"info" form:"info" query:"" example:"job occur error..."` // 日志
CreatedAtBegin xtime.DateTime `json:"createdAtBegin" form:"createdAtBegin" query:"type:gte;column:created_at" example:"2025-01-07 12:20:43"` //创建时间起始 (>=)
CreatedAtEnd xtime.DateTime `json:"createdAtEnd" form:"createdAtEnd" query:"type:lt;column:created_at" example:"2025-01-07 12:20:43"` //创建时间截止 (<)
......
package types
import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/biz"
"gitlab.wanzhuangkj.com/tush/xpkg/xcron/models"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
)
var _ xtime.DateTime
type CronJobRecordGetByJobIDReq struct {
JobID xsf.ID `json:"jobID" form:"jobID" swaggertype:"string" validate:"required" example:"101"` //job ID
JobID sf.ID `json:"jobID" form:"jobID" swaggertype:"string" validate:"required" example:"101"` //job ID
}
type CronJobRecordPageReq struct {
query.Pagination
ID xsf.ID `json:"id" form:"id" swaggertype:"string" query:"" example:"101"` //ID
JobID xsf.ID `json:"jobID" form:"jobID" swaggertype:"string" query:"" example:"101"` // job ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" query:"" example:"101"` //ID
JobID sf.ID `json:"jobID" form:"jobID" swaggertype:"string" query:"" example:"101"` // job ID
BeginTimeBegin xtime.DateTime `json:"beginTimeBegin" form:"beginTimeBegin" query:"type:gte;column:begin_time" example:"2025-01-07 12:20:43"` //开始时间起始 (>=)
BeginTimeEnd xtime.DateTime `json:"beginTimeEnd" form:"beginTimeEnd" query:"type:lt;column:begin_time" example:"2025-01-07 12:20:43"` //开始时间截止 (<)
EndTimeBegin xtime.DateTime `json:"endTimeBegin" form:"endTimeBegin" query:"type:gte;column:end_time" example:"2025-01-07 12:20:43"` //结束时间起始 (>=)
......
......@@ -7,8 +7,8 @@ import (
"strings"
"time"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"github.com/gin-gonic/gin"
"github.com/spf13/cast"
......@@ -151,7 +151,7 @@ func GetGinCtxTid(c *gin.Context) string {
}
func GenerateTid() string {
return xsf.GenerateID().String()
return sf.GenerateID().String()
}
func GetCtxTid(ctx context.Context) string {
......@@ -203,15 +203,15 @@ func GetGinCtx(ctx context.Context) (*gin.Context, error) {
return nil, ErrorGinContextNotFound
}
func GetGinUID(c *gin.Context) xsf.ID {
func GetGinUID(c *gin.Context) sf.ID {
if val := c.Value(KeyUID); val != nil {
if v, ok := val.(xsf.ID); ok {
if v, ok := val.(sf.ID); ok {
return v
}
v := cast.ToInt64(val)
return xsf.ParseInt64(v)
return sf.ParseInt64(v)
}
return xsf.ID(0)
return sf.ID(0)
}
func GetGinUName(c *gin.Context) string {
......@@ -234,15 +234,15 @@ func GetGinCompanyName(c *gin.Context) string {
return ""
}
func GetCtxUID(c context.Context) xsf.ID {
func GetCtxUID(c context.Context) sf.ID {
if val := c.Value(KeyUID); val != nil {
if v, ok := val.(xsf.ID); ok {
if v, ok := val.(sf.ID); ok {
return v
}
v := cast.ToInt64(val)
return xsf.ParseInt64(v)
return sf.ParseInt64(v)
}
return xsf.ID(0)
return sf.ID(0)
}
func GetCtxCompanyName(c context.Context) string {
......@@ -289,34 +289,34 @@ func GetGinUserName(c *gin.Context) string {
return getGinVal[string](c, KeyUName)
}
func GetGinShopID(c *gin.Context) xsf.ID {
return getGinVal[xsf.ID](c, KeyShopID)
func GetGinShopID(c *gin.Context) sf.ID {
return getGinVal[sf.ID](c, KeyShopID)
}
func GetCtxShopID(c context.Context) xsf.ID {
return getCtxVal[xsf.ID](c, KeyShopID)
func GetCtxShopID(c context.Context) sf.ID {
return getCtxVal[sf.ID](c, KeyShopID)
}
func GetGinCompanyID(c *gin.Context) xsf.ID {
func GetGinCompanyID(c *gin.Context) sf.ID {
if val := c.Value(KeyCompanyID); val != nil {
if v, ok := val.(xsf.ID); ok {
if v, ok := val.(sf.ID); ok {
return v
}
v := cast.ToInt64(val)
return xsf.ParseInt64(v)
return sf.ParseInt64(v)
}
return xsf.ID(0)
return sf.ID(0)
}
func GetCtxCompanyID(c context.Context) xsf.ID {
func GetCtxCompanyID(c context.Context) sf.ID {
if val := c.Value(KeyCompanyID); val != nil {
if v, ok := val.(xsf.ID); ok {
if v, ok := val.(sf.ID); ok {
return v
}
v := cast.ToInt64(val)
return xsf.ParseInt64(v)
return sf.ParseInt64(v)
}
return xsf.ID(0)
return sf.ID(0)
}
func getGinVal[T any](c *gin.Context, key string) T {
......
......@@ -8,9 +8,9 @@ import (
"testing"
"time"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm/query"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/gormutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
......@@ -21,7 +21,7 @@ func TestMakeWhere(t *testing.T) {
in := PageReq2{}
in.PageIndex = 1
in.PageSize = 50
in.IDs = []xsf.ID{10, 2, 3}
in.IDs = []sf.ID{10, 2, 3}
in.UserID = 10
in.SiteName = "优盟"
in.Sort = "-id,siteID,-siteName"
......@@ -60,21 +60,21 @@ func getConn() *gorm.DB {
type PageReq struct {
query.Pagination
IDs []xsf.ID `json:"ids" gq:"type:in;table:op;column:id" example:"10"`
UserID xsf.ID `json:"userID" gq:"table:su;column:user_id" example:"10"`
IDs []sf.ID `json:"ids" gq:"type:in;table:op;column:id" example:"10"`
UserID sf.ID `json:"userID" gq:"table:su;column:user_id" example:"10"`
SiteName string `json:"siteName" gq:"type:left;table:s;column:name" example:"优盟"`
}
type PageReq2 struct {
query.Pagination
IDs []xsf.ID `json:"ids" query:"type:in;table:op;column:id" example:"10"`
UserID xsf.ID `json:"userID" query:"table:su;column:user_id" example:"10"`
IDs []sf.ID `json:"ids" query:"type:in;table:op;column:id" example:"10"`
UserID sf.ID `json:"userID" query:"table:su;column:user_id" example:"10"`
SiteName string `json:"siteName" query:"type:left;table:s;column:name" example:"优盟"`
}
type User struct {
ID xsf.ID `json:"id" gorm:"id" gq:"sort:op.id"`
SiteID xsf.ID `json:"siteID" gorm:"site_id" gq:"sort:s.id;table:s;column:id"`
ID sf.ID `json:"id" gorm:"id" gq:"sort:op.id"`
SiteID sf.ID `json:"siteID" gorm:"site_id" gq:"sort:s.id;table:s;column:id"`
SiteName string `json:"siteName" gorm:"site_name" gq:"sort:s.name;table:s;column:name"`
}
......
package idutils
import (
"context"
"errors"
"fmt"
"net/http"
"time"
"gitlab.wanzhuangkj.com/tush/xpkg/config"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/httpcli"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
var (
idGenerateType = "snowflake" // 默认snowflake方式生成
leafRetryCount = 3
leafShowLog = false
leafAddr string = "http://leaf.qitu"
leafApi = &client{
cli: httpcli.NewClient(
&http.Client{
Transport: &http.Transport{
MaxIdleConnsPerHost: 4,
MaxIdleConns: 4,
IdleConnTimeout: 90 * time.Second,
},
}),
}
)
type client struct {
cli *httpcli.Client
}
func Init() error {
if config.Cfg.App.IDGeneration.Type != "" {
idGenerateType = config.Cfg.App.IDGeneration.Type
if idGenerateType == "leaf" {
if config.Cfg.App.IDGeneration.Leaf.Addr != "" {
leafAddr = config.Cfg.App.IDGeneration.Leaf.Addr
}
if config.Cfg.App.IDGeneration.Leaf.ShowLog {
leafShowLog = true
}
if config.Cfg.App.IDGeneration.Leaf.RetryCount > 0 {
leafRetryCount = config.Cfg.App.IDGeneration.Leaf.RetryCount
}
}
}
logger.Infof("[idutils] type: %s", config.Cfg.App.IDGeneration.Type)
return nil
}
func GenerateID(ctx context.Context, bizTag string) (xsf.ID, error) {
if idGenerateType == "snowflake" {
return generateSFID(ctx, bizTag)
} else {
return generateApiID(ctx, bizTag)
}
}
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
reply := &IDReply{
Data: &id,
}
req := leafApi.cli.NewRequest()
if !leafShowLog {
req = req.OmitLog()
}
if err := req.SetRetry(leafRetryCount).SetContentType("application/json").SetURL(url).GET(ctx).BindJSON(reply).Err(); err != nil {
logger.Error("调用leaf失败", logger.String("bizTag", bizTag), logger.Err(err))
return xsf.ID(0), fmt.Errorf("调用leaf失败, %w", err)
}
if reply.Code == 1 {
return id, nil
}
return xsf.ID(0), errors.New(reply.Msg)
}
type IDReply struct {
Code int `json:"code"`
Data any `json:"data"`
Msg string `json:"msg"`
}
......@@ -16,10 +16,10 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/httpcli/entity"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
merge "gitlab.wanzhuangkj.com/tush/xpkg/pkg/merger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/jsonutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/retryutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xtime"
"gorm.io/gorm"
glogger "gorm.io/gorm/logger"
......@@ -102,7 +102,7 @@ func Init() {
if l.Len() == 0 {
return nil
}
ctx := context.WithValue(context.Background(), ctxutils.ContextTraceIDKey, xsf.GenerateID().String())
ctx := context.WithValue(context.Background(), ctxutils.ContextTraceIDKey, sf.GenerateID().String())
ors := make([]*WebLog, 0, l.Len())
for e := l.Front(); e != nil; e = e.Next() {
le, ok := e.Value.(*WebLog)
......@@ -156,7 +156,7 @@ func Init() {
func AddAsync(ctx context.Context, operate string, req *entity.CopyHttpReq, rsp *entity.CopyHttpRsp) {
wl := &WebLog{}
wl.ID = xsf.GenerateID()
wl.ID = sf.GenerateID()
wl.CompanyName = ctxutils.GetCtxCompanyName(ctx)
wl.CompanyID = ctxutils.GetCtxCompanyID(ctx)
wl.UID = ctxutils.GetCtxUID(ctx)
......@@ -194,9 +194,9 @@ func (x *webLogDao) Create(ctx context.Context, r *WebLog) error {
}
type WebLog struct {
ID xsf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"1000"` //主键
CompanyID xsf.ID `json:"companyID" form:"companyID" swaggertype:"string" gorm:"column:company_id;type:bigint(20) unsigned;comment:公司ID" example:"1008"` //公司ID
UID xsf.ID `json:"uID" form:"uID" swaggertype:"string" gorm:"column:u_id;type:bigint(20) unsigned;comment:用户ID" example:"2008"` //用户ID
ID sf.ID `json:"id" form:"id" swaggertype:"string" gorm:"column:id;type:bigint(20) unsigned;primaryKey;autoIncrement;comment:主键" example:"1000"` //主键
CompanyID sf.ID `json:"companyID" form:"companyID" swaggertype:"string" gorm:"column:company_id;type:bigint(20) unsigned;comment:公司ID" example:"1008"` //公司ID
UID sf.ID `json:"uID" form:"uID" swaggertype:"string" gorm:"column:u_id;type:bigint(20) unsigned;comment:用户ID" example:"2008"` //用户ID
CompanyName string `json:"companyName" form:"companyName" gorm:"column:company_name;type:varchar(128);comment:公司名称" example:"tomcat"` //公司名称
UName string `json:"uName" form:"uName" gorm:"column:u_name;type:varchar(128);comment:名称" example:"tomcat"` //名称
Operate string `json:"operate" form:"operate" gorm:"column:operate;type:varchar(128);comment:操作" example:"用户登出"` //操作
......@@ -206,7 +206,7 @@ type WebLog struct {
CreatedAt xtime.DateTime `json:"createdAt" form:"createdAt" gorm:"column:created_at;type:datetime;comment:创建时间" example:"2025-01-07 12:20:43"` //创建时间
}
func (x WebLog) GetID() xsf.ID {
func (x WebLog) GetID() sf.ID {
return x.ID
}
......
package xsf
import (
"fmt"
"reflect"
"testing"
)
func TestID_MarshalJSON(t *testing.T) {
tests := []struct {
name string
f ID
want []byte
wantErr bool
}{
// TODO: Add test cases.
{
name: "test1",
f: ID(1002),
want: []byte(`"1002"`),
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := tt.f.MarshalJSON()
if (err != nil) != tt.wantErr {
t.Errorf("ID.MarshalJSON() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("ID.MarshalJSON() = %v, want %v", got, tt.want)
}
})
}
}
func TestID_String(t *testing.T) {
for i := 0; i < 10; i++ {
fmt.Println(GenerateID().String())
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论