package learning import ( "context" "fmt" "lims_adapter/dao/learning" "lims_adapter/model/learning" "dashoo.cn/micro_libary/micro_srv" "dashoo.cn/micro_libary/myerrors" "dashoo.cn/micro_libary/request" "github.com/gogf/gf/util/gvalid" ) type LearningMaterialPublishRecordService struct { Dao *dao.LearningMaterialPublishRecordDao Tenant string userInfo request.UserInfo } func NewLearningMaterialPublishRecordService(ctx context.Context) (*LearningMaterialPublishRecordService, error) { tenant, err := micro_srv.GetTenant(ctx) if err != nil { return nil, fmt.Errorf("获取组合码异常:%s", err.Error()) } // 获取用户信息 userInfo, err := micro_srv.GetUserInfo(ctx) if err != nil { return nil, fmt.Errorf("获取用户信息异常:%s", err.Error()) } return &LearningMaterialPublishRecordService{ Dao: dao.NewLearningMaterialPublishRecordDao(tenant), Tenant: tenant, userInfo: userInfo, }, nil } func (s LearningMaterialPublishRecordService) List(ctx context.Context, req *learning.LearningMaterialPublishRecordListReq) (int, []*learning.LearningMaterialPublishRecordRsp, error) { validErr := gvalid.CheckStruct(ctx, req, nil) if validErr != nil { return 0, nil, myerrors.NewMsgError(nil, validErr.Current().Error()) } dao := s.Dao.LearningMaterialPublishRecordDao. LeftJoin("learning_material", "learning_material.Id=learning_material_publish_record.MaterialId") total, err := dao.Count() if err != nil { return 0, nil, err } if req.Page != nil { if req.Page.Current == 0 { req.Page.Current = 1 } if req.Page.Size == 0 { req.Page.Size = 10 } dao = dao.Page(req.Page.Current, req.Page.Size) } list := []*learning.LearningMaterialPublishRecordRsp{} err = dao. Order("learning_material_publish_record.CreatedAt", "desc"). Fields("learning_material_publish_record.*, learning_material.Name as MaterialName"). Structs(&list) return total, list, err }