Files
lone-services/services/user/internal/logic/userDetail.go
T
2026-10-19 17:30:45 +08:00

55 lines
1.1 KiB
Go

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
}