uniugm/admin/apps/game/domain/entity/comm_resouce.go
2025-04-24 20:39:31 +08:00

69 lines
1.2 KiB
Go

package entity
import (
"admin/apps/game/model"
"admin/apps/game/model/dto"
"reflect"
)
type CommonResource struct {
ProjectEt *Project
Po model.IModel
}
func (et *CommonResource) FromPo(po model.IModel) *CommonResource {
et.Po = po
return et
}
func (et *CommonResource) FromDto(dto dto.CommonDtoValues) *CommonResource {
po := et.Po
//to := reflect.TypeOf(Po)
vo := reflect.ValueOf(po).Elem()
to := reflect.TypeOf(po).Elem()
for k, v := range dto {
fo := vo.FieldByName(k)
ft, find := to.FieldByName(k)
if !find {
continue
}
fo.Set(parseStr2FieldValue(ft, v))
}
return et
}
func (et *CommonResource) ToPo() model.IModel {
return et.Po
}
func (et *CommonResource) ToCommonDto() dto.CommonDtoValues {
return poToCommonDtoNo(et.Po)
}
func (et *CommonResource) GetDtoFieldsDescInfo(projectId string) []*dto.CommonDtoFieldDesc {
ptrVo := reflect.ValueOf(et.Po)
to := reflect.TypeOf(et.Po).Elem()
vo := ptrVo.Elem()
obj := make([]*dto.CommonDtoFieldDesc, 0, to.NumField())
for i := 0; i < vo.NumField(); i++ {
ft := to.Field(i)
//fo := vo.Field(i)
if ft.Name == "ProjectId" {
continue
}
f1 := getFieldTypeDtoDescInfo(projectId, ptrVo, ft)
obj = append(obj, f1)
}
return obj
}