material_publish_record.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package learning
  2. import (
  3. "context"
  4. "fmt"
  5. "lims_adapter/dao/learning"
  6. "lims_adapter/model/learning"
  7. "dashoo.cn/micro_libary/micro_srv"
  8. "dashoo.cn/micro_libary/myerrors"
  9. "dashoo.cn/micro_libary/request"
  10. "github.com/gogf/gf/util/gvalid"
  11. )
  12. type LearningMaterialPublishRecordService struct {
  13. Dao *dao.LearningMaterialPublishRecordDao
  14. Tenant string
  15. userInfo request.UserInfo
  16. }
  17. func NewLearningMaterialPublishRecordService(ctx context.Context) (*LearningMaterialPublishRecordService, error) {
  18. tenant, err := micro_srv.GetTenant(ctx)
  19. if err != nil {
  20. return nil, fmt.Errorf("获取组合码异常:%s", err.Error())
  21. }
  22. // 获取用户信息
  23. userInfo, err := micro_srv.GetUserInfo(ctx)
  24. if err != nil {
  25. return nil, fmt.Errorf("获取用户信息异常:%s", err.Error())
  26. }
  27. return &LearningMaterialPublishRecordService{
  28. Dao: dao.NewLearningMaterialPublishRecordDao(tenant),
  29. Tenant: tenant,
  30. userInfo: userInfo,
  31. }, nil
  32. }
  33. func (s LearningMaterialPublishRecordService) List(ctx context.Context, req *learning.LearningMaterialPublishRecordListReq) (int, []*learning.LearningMaterialPublishRecordRsp, error) {
  34. validErr := gvalid.CheckStruct(ctx, req, nil)
  35. if validErr != nil {
  36. return 0, nil, myerrors.NewMsgError(nil, validErr.Current().Error())
  37. }
  38. dao := s.Dao.LearningMaterialPublishRecordDao.
  39. LeftJoin("learning_material", "learning_material.Id=learning_material_publish_record.MaterialId")
  40. total, err := dao.Count()
  41. if err != nil {
  42. return 0, nil, err
  43. }
  44. if req.Page != nil {
  45. if req.Page.Current == 0 {
  46. req.Page.Current = 1
  47. }
  48. if req.Page.Size == 0 {
  49. req.Page.Size = 10
  50. }
  51. dao = dao.Page(req.Page.Current, req.Page.Size)
  52. }
  53. list := []*learning.LearningMaterialPublishRecordRsp{}
  54. err = dao.
  55. Order("learning_material_publish_record.CreatedAt", "desc").
  56. Fields("learning_material_publish_record.*, learning_material.Name as MaterialName").
  57. Structs(&list)
  58. return total, list, err
  59. }