// Code scaffolded by goctl. Safe to edit. package myPlant import ( "context" "fmt" "github.com/zeromicro/go-zero/core/logx" "sundynix-micro-go/app/plant/api/internal/svc" "sundynix-micro-go/app/plant/api/internal/types" plantModel "sundynix-micro-go/app/plant/model" "time" ) type CreatePlantLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewCreatePlantLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreatePlantLogic { return &CreatePlantLogic{Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx} } func (l *CreatePlantLogic) CreatePlant(req *types.CreatePlantReq) error { userId := fmt.Sprintf("%v", l.ctx.Value("userId")) plantTime, _ := time.Parse("2006-01-02", req.PlantTime) plant := plantModel.SundynixMyPlant{ UserID: userId, Name: req.Name, PlantTime: plantTime, Placement: req.Placement, PotMaterial: req.PotMaterial, PotSize: req.PotSize, Sunlight: req.Sunlight, PlantingMaterial: req.PlantingMaterial, Status: 1, } if err := l.svcCtx.DB.Create(&plant).Error; err != nil { l.Errorf("创建植物失败: %v", err) return fmt.Errorf("创建植物失败") } if len(req.ImgIds) > 0 { for _, imgID := range req.ImgIds { l.svcCtx.DB.Create(&plantModel.SundynixMyPlantOss{MyPlantID: plant.ID, OssID: imgID}) } } return nil }