Контроллер обеспечивает передачу внешних данных в модель. Если инициализация структуры А требует передачи ей внешних данных, то можно это сделать и в контроллере, но, думаю, это совершенно не критично где будет происходить инициализация.
Я б сделал не
SetParam2
, а
type B struct {
A
Id uint64
IdA uint64
//Param2 uint
}
func (b B) Param2() uint {
return A.Param1 * 3;
}
но это, конечно, зависит от задачи.
Для полной ясности проще всего (в смысле не задумываясь над тем как надо) можно создать 3ю структуру С, которая работает с моделями А и B. Инициализация С в контроллере, инициализация А и B в модели С.