package domain import ( "admin/apps/game/domain/entity" "admin/apps/game/domain/repo" "admin/apps/game/model/dto" "gorm.io/gorm" ) type ProjectSvc struct { proRepo repo.IProjectRepo } func NewProjectSvc(db *gorm.DB) *ProjectSvc { svc := &ProjectSvc{ proRepo: repo.NewProjectRepo(db), } registerRestfulSvc("project", svc) return svc } func (svc *ProjectSvc) List(pageNo, pageLen int) ([]*dto.CommonDtoFieldDesc, []IRestfulEntity, error) { entityList, err := svc.proRepo.List(pageNo, pageLen) if err != nil { return nil, nil, err } iList := make([]IRestfulEntity, 0, len(entityList)) for _, v := range entityList { iList = append(iList, v) } return entity.ProjectDtoFieldsDescInfo, iList, nil } func (svc *ProjectSvc) Post(obj dto.CommonDtoValues) (IRestfulEntity, error) { et := entity.FromProjectDto(obj) err := svc.proRepo.Create(et) return et, err } func (svc *ProjectSvc) Put(obj dto.CommonDtoValues) (IRestfulEntity, error) { et := entity.FromProjectDto(obj) err := svc.proRepo.Edit(et) return et, err } func (svc *ProjectSvc) Delete(id int) error { return svc.proRepo.Delete(id) }