新增设备类型选项接口
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

This commit is contained in:
2026-09-22 12:35:26 +08:00
parent 22c3e7cc1a
commit 4330b8a40c
28 changed files with 671 additions and 8 deletions

View File

@@ -142,6 +142,23 @@ func (s *DeviceStore) List(ctx context.Context, opts *store.QueryOptions, filter
return devices, total, nil
}
// ListDeviceTypes 查询未删除设备的去重设备类型。
func (s *DeviceStore) ListDeviceTypes(ctx context.Context) ([]string, error) {
types := make([]string, 0)
trimmedType := "TRIM(device_type)"
err := s.db.WithContext(ctx).
Model(&model.Device{}).
Where("NULLIF("+trimmedType+", '') IS NOT NULL").
Select(trimmedType).
Distinct().
Order(trimmedType+" ASC").
Pluck(trimmedType, &types).Error
if err != nil {
return nil, err
}
return types, nil
}
func (s *DeviceStore) applyDeviceFilters(ctx context.Context, query *gorm.DB, filters map[string]any) *gorm.DB {
if virtualNo, ok := filters["virtual_no"].(string); ok && virtualNo != "" {
query = query.Where("virtual_no LIKE ?", "%"+virtualNo+"%")