feat: 植物识别百科ai助手迁移
This commit is contained in:
@@ -3,10 +3,13 @@ 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"
|
||||
"sundynix-micro-go/app/plant/rpc/plant"
|
||||
plantModel "sundynix-micro-go/app/plant/model"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type AddGrowthRecordLogic struct {
|
||||
@@ -21,8 +24,36 @@ func NewAddGrowthRecordLogic(ctx context.Context, svcCtx *svc.ServiceContext) *A
|
||||
|
||||
func (l *AddGrowthRecordLogic) AddGrowthRecord(req *types.GrowthRecordReq) error {
|
||||
userId := fmt.Sprintf("%v", l.ctx.Value("userId"))
|
||||
_, err := l.svcCtx.PlantRpc.AddGrowthRecord(l.ctx, &plant.AddGrowthRecordReq{
|
||||
UserId: userId, PlantId: req.PlantId, Content: req.Content, ImgIds: req.ImgIds,
|
||||
imgIds := req.ImgIds
|
||||
if len(imgIds) == 0 && len(req.OssIds) > 0 {
|
||||
imgIds = req.OssIds
|
||||
}
|
||||
|
||||
err := l.svcCtx.DB.Transaction(func(tx *gorm.DB) error {
|
||||
record := plantModel.GrowthRecord{
|
||||
UserID: userId,
|
||||
PlantID: req.PlantId,
|
||||
Name: req.Name,
|
||||
Tag: req.Tag,
|
||||
Desc: req.Desc,
|
||||
Content: req.Content,
|
||||
}
|
||||
if err := tx.Create(&record).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
// 保存图片关联
|
||||
if len(imgIds) > 0 {
|
||||
relations := make([]plantModel.GrowthRecordOss, 0, len(imgIds))
|
||||
for _, ossId := range imgIds {
|
||||
relations = append(relations, plantModel.GrowthRecordOss{
|
||||
GrowthRecordID: record.ID, OssID: ossId,
|
||||
})
|
||||
}
|
||||
if err := tx.Create(&relations).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user