2025-04-30 15:46:14 +08:00
|
|
|
package entity
|
|
|
|
|
|
|
|
import (
|
|
|
|
"admin/apps/user/model"
|
2025-05-16 15:17:10 +08:00
|
|
|
"admin/internal/model/dto"
|
2025-04-30 15:46:14 +08:00
|
|
|
"reflect"
|
|
|
|
)
|
|
|
|
|
|
|
|
type CommonResource struct {
|
|
|
|
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() []*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.Tag.Get("server_use") == "true" {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
|
|
|
f1 := getFieldTypeDtoDescInfo(ptrVo, ft)
|
|
|
|
obj = append(obj, f1)
|
|
|
|
}
|
|
|
|
|
|
|
|
return obj
|
|
|
|
}
|