fix(ticket): close backend core review gaps

This commit is contained in:
mlogclub
2026-05-02 18:57:40 +08:00
parent fce0b5709d
commit a06ce7074e
6 changed files with 70 additions and 48 deletions
+8 -1
View File
@@ -462,7 +462,7 @@ func (s *ticketService) assignTicketTx(tx *gorm.DB, req request.AssignTicketRequ
if ticket == nil {
return nil, errorsx.InvalidParam("工单不存在")
}
if err := s.validateAssignee(req.ToUserID); err != nil {
if err := s.validateRequiredAssignee(req.ToUserID); err != nil {
return nil, err
}
now := time.Now()
@@ -586,6 +586,13 @@ func (s *ticketService) validateAssignee(userID int64) error {
if userID <= 0 {
return nil
}
return s.validateRequiredAssignee(userID)
}
func (s *ticketService) validateRequiredAssignee(userID int64) error {
if userID <= 0 {
return errorsx.InvalidParam("负责人不存在")
}
user := UserService.Get(userID)
if user == nil || user.Status == enums.StatusDeleted {
return errorsx.InvalidParam("负责人不存在")
+18
View File
@@ -190,6 +190,24 @@ func TestTicketServiceAddProgressStoresContentAndAuthor(t *testing.T) {
}
}
func TestTicketServiceAssignTicketRequiresTargetUser(t *testing.T) {
setupTicketTestDB(t)
operator := createTestOperator(t, "assign-operator")
ticket, err := services.TicketService.CreateTicket(createTestTicketRequest("assign-ticket"), operator)
if err != nil {
t.Fatalf("CreateTicket() error = %v", err)
}
err = services.TicketService.AssignTicket(request.AssignTicketRequest{
TicketID: ticket.ID,
ToUserID: 0,
Reason: "invalid assignment",
}, operator)
if err == nil {
t.Fatalf("expected AssignTicket() to reject empty target user")
}
}
func TestTicketServiceSummaryCountsStaleTickets(t *testing.T) {
setupTicketTestDB(t)
operator := createTestOperator(t, "summary-operator")