dingtalk_log.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package dingtalk_log
  2. import (
  3. "context"
  4. "dashoo.cn/micro/app/dao/dingtalk_log"
  5. model "dashoo.cn/micro/app/model/dingtalk_log"
  6. "dashoo.cn/micro/app/service"
  7. "github.com/gogf/gf/os/glog"
  8. )
  9. type logService struct {
  10. *service.ContextService
  11. Dao *dingtalk_log.DingtalkLogDao
  12. }
  13. func newService(ctx context.Context) (svc *logService, err error) {
  14. svc = new(logService)
  15. if svc.ContextService, err = svc.Init(ctx); err != nil {
  16. return nil, err
  17. }
  18. svc.Dao = dingtalk_log.NewDingtalkLogDao(svc.Tenant)
  19. return svc, nil
  20. }
  21. func Create(ctx context.Context, logType, content string) {
  22. // 异步写入日志
  23. go func(ctx context.Context, logType, content string) {
  24. srv, err := newService(ctx)
  25. if err != nil {
  26. glog.Error(err)
  27. return
  28. }
  29. // 构造日志数据
  30. var entity model.DingtalkLog
  31. entity.Type = logType
  32. entity.Content = content
  33. service.SetCreatedInfo(&entity, srv.GetCxtUserId(), srv.GetCxtUserName())
  34. _, err = srv.Dao.Save(entity)
  35. if err != nil {
  36. glog.Error(err)
  37. }
  38. }(ctx, logType, content)
  39. }