54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package logic
|
|
|
|
import (
|
|
"context"
|
|
|
|
plantModel "sundynix-micro-go/app/plant/model"
|
|
"sundynix-micro-go/app/plant/rpc/internal/svc"
|
|
"sundynix-micro-go/app/plant/rpc/plant"
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
)
|
|
|
|
type GetUserProfileLogic struct {
|
|
ctx context.Context
|
|
svcCtx *svc.ServiceContext
|
|
logx.Logger
|
|
}
|
|
|
|
func NewGetUserProfileLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserProfileLogic {
|
|
return &GetUserProfileLogic{
|
|
ctx: ctx,
|
|
svcCtx: svcCtx,
|
|
Logger: logx.WithContext(ctx),
|
|
}
|
|
}
|
|
|
|
// 获取用户资料 (首次访问自动初始化)
|
|
func (l *GetUserProfileLogic) GetUserProfile(in *plant.GetProfileReq) (*plant.PlantUserProfile, error) {
|
|
var profile plantModel.UserProfile
|
|
err := l.svcCtx.DB.Where("user_id = ?", in.UserId).FirstOrCreate(&profile, plantModel.UserProfile{
|
|
UserID: in.UserId,
|
|
}).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &plant.PlantUserProfile{
|
|
Id: profile.ID,
|
|
UserId: profile.UserID,
|
|
NickName: profile.NickName,
|
|
AvatarId: profile.AvatarID,
|
|
LevelId: profile.LevelID,
|
|
CurrentSunlight: profile.CurrentSunlight,
|
|
TotalSunlight: profile.TotalSunlight,
|
|
PlantCount: profile.PlantCount,
|
|
CareCount: profile.CareCount,
|
|
PostCount: profile.PostCount,
|
|
WaterCount: profile.WaterCount,
|
|
FertilizeCount: profile.FertilizeCount,
|
|
RepotCount: profile.RepotCount,
|
|
PruneCount: profile.PruneCount,
|
|
PhotoCount: profile.PhotoCount,
|
|
}, nil
|
|
}
|