From 2aab9203a029c6b46f83e8efd3c8b827ce93ea86 Mon Sep 17 00:00:00 2001 From: Frudrax Cheng Date: Thu, 28 May 2026 10:24:32 +0800 Subject: [PATCH] Add employee serial QR query support --- services/employees_service.go | 4 ++-- services/users_service_test.go | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/services/employees_service.go b/services/employees_service.go index 981b5e9..fbf39c7 100644 --- a/services/employees_service.go +++ b/services/employees_service.go @@ -147,7 +147,7 @@ func (s *EmployeeSerialsService) generateWithDB( // Query 查询员工序列号信息 func (s *EmployeeSerialsService) Query(serialNumber string) (*models.EmployeeSerial, error) { var serial models.EmployeeSerial - result := database.DB.Preload("User").Where("serial_number = ?", strings.ToUpper(serialNumber)).First(&serial) + result := database.DB.Preload("User").Preload("Employee").Where("serial_number = ?", strings.ToUpper(serialNumber)).First(&serial) if result.Error != nil { return nil, fmt.Errorf("查询员工序列号失败: %w", errors.New("序列号不存在")) } @@ -161,7 +161,7 @@ func (s *EmployeeSerialsService) FindAll(page int, limit int, search string) ([] var total int64 offset := (page - 1) * limit - db := database.DB.Preload("User") + db := database.DB.Preload("User").Preload("Employee") // 搜索条件 if search != "" { diff --git a/services/users_service_test.go b/services/users_service_test.go index 5578e8e..adec33b 100644 --- a/services/users_service_test.go +++ b/services/users_service_test.go @@ -51,6 +51,15 @@ func TestUsersService_Create_EmployeeWithoutPasswordGeneratesSerial(t *testing.T assert.NoError(t, database.DB.Where("employee_no = ?", "employee_no_pwd").First(&user).Error) assert.Empty(t, user.Password) + serialService := EmployeeSerialsService{} + serial, err := serialService.Query(dto.EmployeeSerials[0].SerialNumber) + assert.NoError(t, err) + assert.NotNil(t, serial.Employee) + assert.Equal(t, "普通员工", serial.Employee.Name) + assert.Equal(t, "13800000002", serial.Employee.Phone) + assert.Equal(t, "employee_no_pwd", serial.Employee.EmployeeNo) + assert.Equal(t, "生产员工", serial.Employee.Position) + database.DB.Unscoped().Where("employee_id = ?", user.ID).Delete(&models.EmployeeSerial{}) database.DB.Unscoped().Delete(&user) }