service

package
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidRequest    = fmt.Errorf("请求参数无效")
	ErrInvalidStatus     = fmt.Errorf("工单状态无效")
	ErrInvalidPermission = fmt.Errorf("权限不足")
	ErrInvalidOperation  = fmt.Errorf("操作无效")
)
View Source
var (
	ErrInstanceNotFound = errors.New("工单实例不存在")
)

错误定义

Functions

This section is empty.

Types

type CategoryGroupService

type CategoryGroupService interface {
	CreateCategory(ctx context.Context, req *model.CreateWorkorderCategoryReq) error
	UpdateCategory(ctx context.Context, req *model.UpdateWorkorderCategoryReq) error
	DeleteCategory(ctx context.Context, id int) error
	ListCategory(ctx context.Context, req model.ListWorkorderCategoryReq) (*model.ListResp[*model.WorkorderCategory], error)
	GetCategory(ctx context.Context, id int) (*model.WorkorderCategory, error)
}

func NewCategoryGroupService

func NewCategoryGroupService(categoryDAO dao.WorkorderCategoryDAO, userDAO userdao.UserDAO, logger *zap.Logger) CategoryGroupService

type FormDesignService

type FormDesignService interface {
	CreateFormDesign(ctx context.Context, formDesignReq *model.CreateWorkorderFormDesignReq) error
	UpdateFormDesign(ctx context.Context, formDesignReq *model.UpdateWorkorderFormDesignReq) error
	DeleteFormDesign(ctx context.Context, id int) error
	GetFormDesign(ctx context.Context, id int) (*model.WorkorderFormDesign, error)
	ListFormDesign(ctx context.Context, req *model.ListWorkorderFormDesignReq) (*model.ListResp[*model.WorkorderFormDesign], error)
}

func NewFormDesignService

func NewFormDesignService(dao dao.WorkorderFormDesignDAO, categoryDao dao.WorkorderCategoryDAO, logger *zap.Logger) FormDesignService

type InstanceCommentService

type InstanceCommentService interface {
	CreateInstanceComment(ctx context.Context, req *model.CreateWorkorderInstanceCommentReq) error
	UpdateInstanceComment(ctx context.Context, req *model.UpdateWorkorderInstanceCommentReq, userID int) error
	DeleteInstanceComment(ctx context.Context, id int, userID int) error
	GetInstanceComment(ctx context.Context, id int) (*model.WorkorderInstanceComment, error)
	ListInstanceComments(ctx context.Context, req *model.ListWorkorderInstanceCommentReq) (*model.ListResp[*model.WorkorderInstanceComment], error)
	GetInstanceCommentsTree(ctx context.Context, instanceID int) ([]*model.WorkorderInstanceComment, error)
}

func NewInstanceCommentService

func NewInstanceCommentService(
	dao dao.WorkorderInstanceCommentDAO,
	instanceDao dao.WorkorderInstanceDAO,
	notificationService WorkorderNotificationService,
	logger *zap.Logger,
) InstanceCommentService

type InstanceFlowService

type InstanceFlowService interface {
	ListInstanceFlows(ctx context.Context, req *model.ListWorkorderInstanceFlowReq) (*model.ListResp[*model.WorkorderInstanceFlow], error)
	DetailInstanceFlow(ctx context.Context, id int) (*model.WorkorderInstanceFlow, error)
}

func NewInstanceFlowService

func NewInstanceFlowService(dao dao.WorkorderInstanceFlowDAO, logger *zap.Logger) InstanceFlowService

type InstanceService

type InstanceService interface {
	CreateInstance(ctx context.Context, req *model.CreateWorkorderInstanceReq) error
	CreateInstanceFromTemplate(ctx context.Context, templateID int, req *model.CreateWorkorderInstanceFromTemplateReq) error
	UpdateInstance(ctx context.Context, req *model.UpdateWorkorderInstanceReq) error
	DeleteInstance(ctx context.Context, id int) error
	GetInstance(ctx context.Context, id int) (*model.WorkorderInstance, error)
	ListInstance(ctx context.Context, req *model.ListWorkorderInstanceReq) (*model.ListResp[*model.WorkorderInstance], error)
	SubmitInstance(ctx context.Context, id int, operatorID int, operatorName string) error
	AssignInstance(ctx context.Context, id int, assigneeID int, operatorID int, operatorName string) error
	ApproveInstance(ctx context.Context, id int, operatorID int, operatorName string, comment string) error
	RejectInstance(ctx context.Context, id int, operatorID int, operatorName string, comment string) error
	CancelInstance(ctx context.Context, id int, operatorID int, operatorName string, comment string) error
	CompleteInstance(ctx context.Context, id int, operatorID int, operatorName string, comment string) error
	ReturnInstance(ctx context.Context, id int, operatorID int, operatorName string, comment string) error
	GetAvailableActions(ctx context.Context, instanceID int, operatorID int) ([]string, error)
	GetCurrentStep(ctx context.Context, instanceID int) (*model.ProcessStep, error)
}

type RecipientInfo

type RecipientInfo struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	Type string `json:"type"`
}

RecipientInfo 接收人信息

type WorkorderInstanceTimeLineService

type WorkorderInstanceTimeLineService interface {
	CreateInstanceTimeLine(ctx context.Context, req *model.CreateWorkorderInstanceTimelineReq, creatorID int, creatorName string) (*model.WorkorderInstanceTimeline, error)
	GetInstanceTimeLine(ctx context.Context, id int) (*model.WorkorderInstanceTimeline, error)
	ListInstanceTimeLine(ctx context.Context, req *model.ListWorkorderInstanceTimelineReq) (*model.ListResp[*model.WorkorderInstanceTimeline], error)
}

type WorkorderNotificationService

type WorkorderNotificationService interface {
	CreateNotification(ctx context.Context, req *model.CreateWorkorderNotificationReq) error
	UpdateNotification(ctx context.Context, req *model.UpdateWorkorderNotificationReq) error
	DeleteNotification(ctx context.Context, req *model.DeleteWorkorderNotificationReq) error
	ListNotification(ctx context.Context, req *model.ListWorkorderNotificationReq) (*model.ListResp[*model.WorkorderNotification], error)
	DetailNotification(ctx context.Context, req *model.DetailWorkorderNotificationReq) (*model.WorkorderNotification, error)
	GetSendLogs(ctx context.Context, req *model.ListWorkorderNotificationLogReq) (*model.ListResp[*model.WorkorderNotificationLog], error)
	TestSendNotification(ctx context.Context, req *model.TestSendWorkorderNotificationReq) error
	SendWorkorderNotification(ctx context.Context, instanceID int, eventType string, customContent ...string) error
	SendNotificationByChannels(ctx context.Context, channels []string, recipient, subject, content string) error
	GetAvailableChannels() *model.ListResp[*model.WorkorderNotificationChannel]
}

type WorkorderProcessService

type WorkorderProcessService interface {
	CreateWorkorderProcess(ctx context.Context, req *model.CreateWorkorderProcessReq) error
	UpdateWorkorderProcess(ctx context.Context, req *model.UpdateWorkorderProcessReq) error
	DeleteWorkorderProcess(ctx context.Context, id int) error
	ListWorkorderProcess(ctx context.Context, req *model.ListWorkorderProcessReq) (*model.ListResp[*model.WorkorderProcess], error)
	DetailWorkorderProcess(ctx context.Context, id int) (*model.WorkorderProcess, error)
}

func NewWorkorderProcessService

func NewWorkorderProcessService(
	processDao dao.WorkorderProcessDAO,
	formDesignDao dao.WorkorderFormDesignDAO,
	categoryDao dao.WorkorderCategoryDAO,
	instanceDao dao.WorkorderInstanceDAO,
	logger *zap.Logger,
) WorkorderProcessService

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL