package logic import ( "context" "encoding/json" "github.com/zeromicro/go-zero/core/logx" plantModel "sundynix-micro-go/app/plant/model" "sundynix-micro-go/app/plant/rpc/internal/svc" "sundynix-micro-go/app/plant/rpc/plant" ) type GetMyClassifyLogLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGetMyClassifyLogLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetMyClassifyLogLogic { return &GetMyClassifyLogLogic{ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx)} } func (l *GetMyClassifyLogLogic) GetMyClassifyLog(in *plant.GetProfileReq) (*plant.ClassifyLogListResp, error) { var records []plantModel.ClassifyRecord if err := l.svcCtx.DB.Where("user_id = ?", in.UserId).Order("created_at desc").Limit(50).Find(&records).Error; err != nil { return nil, err } list := make([]*plant.ClassifyLogInfo, 0, len(records)) for _, og := range records { var imgUrl string if len(og.AllResults) > 0 && og.AllResults[0].BaikeInfo != nil { imgUrl = og.AllResults[0].BaikeInfo.ImageUrl } resultBytes, _ := json.Marshal(og.AllResults) list = append(list, &plant.ClassifyLogInfo{ Id: og.ID, UserId: og.UserID, ImageUrl: imgUrl, Result: string(resultBytes), CreatedAt: og.CreatedAt.Format("2006-01-02 15:04:05"), }) } return &plant.ClassifyLogListResp{List: list, Total: int64(len(list))}, nil }