package logic import ( "strconv" "lone-services/pkg/modelbase" "lone-services/pkg/utils" "lone-services/services/user/internal/dao" "lone-services/services/user/internal/model" "gorm.io/gorm" ) func ensureUserDetail(tx *gorm.DB, userId int64) error { if userId < utils.NumberOne { return nil } detailModel := model.UserDetailModel{}.Init() if tx != nil { detailModel.Base = detailModel.Base.WithTX(tx) } var exist dao.UserDetail if err := detailModel.GetOne(modelbase.Params{ Eq: map[string]string{"user_id": strconv.FormatInt(userId, utils.NumberTen)}, }, &exist); err != nil { return err } if exist.Id > utils.NumberZero { return nil } return detailModel.Create(&dao.UserDetailCreate{ UserId: userId, }) } func loadUserDetail(userId int64) (*dao.UserDetail, error) { if userId < utils.NumberOne { return nil, nil } var row dao.UserDetail err := model.UserDetailModel{}.Init().GetOne(modelbase.Params{ Eq: map[string]string{"user_id": strconv.FormatInt(userId, utils.NumberTen)}, }, &row) if err != nil { return nil, err } if row.Id < utils.NumberOne { return nil, nil } return &row, nil }