| @@ -83,6 +83,15 @@ func (ResourceSceneRes) TableName() string { | |||||
| return "resource_scene" | return "resource_scene" | ||||
| } | } | ||||
| type ResourceSceneBriefRes struct { | |||||
| ID int64 | |||||
| SceneName string | |||||
| } | |||||
| func (ResourceSceneBriefRes) TableName() string { | |||||
| return "resource_scene" | |||||
| } | |||||
| type ResourceSpecWithSceneId struct { | type ResourceSpecWithSceneId struct { | ||||
| ID int64 | ID int64 | ||||
| SourceSpecId string | SourceSpecId string | ||||
| @@ -182,6 +182,17 @@ func SearchResourceSpecification(opts SearchResourceSpecificationOptions) (int64 | |||||
| return n, r, nil | return n, r, nil | ||||
| } | } | ||||
| func GetSpecScenes(specId int64) ([]ResourceSceneBriefRes, error) { | |||||
| r := make([]ResourceSceneBriefRes, 0) | |||||
| err := x.Where("resource_scene_spec.spec_id = ?", specId). | |||||
| Join("INNER", "resource_scene_spec", "resource_scene_spec.scene_id = resource_scene.id"). | |||||
| Find(&r) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| return r, nil | |||||
| } | |||||
| func ResourceSpecOnShelf(id int64, spec ResourceSpecification) (int64, error) { | func ResourceSpecOnShelf(id int64, spec ResourceSpecification) (int64, error) { | ||||
| spec.Status = SpecOnShelf | spec.Status = SpecOnShelf | ||||
| return x.Where("id = ? and status in (?,?)", id, SpecOffShelf, SpecNotVerified).Update(&spec) | return x.Where("id = ? and status in (?,?)", id, SpecOffShelf, SpecNotVerified).Update(&spec) | ||||
| @@ -132,6 +132,19 @@ func GetResourceSpecificationList(ctx *context.Context) { | |||||
| ctx.JSON(http.StatusOK, response.SuccessWithData(list)) | ctx.JSON(http.StatusOK, response.SuccessWithData(list)) | ||||
| } | } | ||||
| func GetResourceSpecificationScenes(ctx *context.Context) { | |||||
| specId := ctx.ParamsInt64(":id") | |||||
| list, err := resource.GetResourceSpecificationScenes(specId) | |||||
| if err != nil { | |||||
| log.Error("GetResourceSpecificationScenes error.%v", err) | |||||
| ctx.JSON(http.StatusOK, response.ServerError(err.Error())) | |||||
| return | |||||
| } | |||||
| r := make(map[string]interface{}) | |||||
| r["List"] = list | |||||
| ctx.JSON(http.StatusOK, response.SuccessWithData(r)) | |||||
| } | |||||
| func AddResourceSpecification(ctx *context.Context, req models.ResourceSpecificationReq) { | func AddResourceSpecification(ctx *context.Context, req models.ResourceSpecificationReq) { | ||||
| req.IsAutomaticSync = false | req.IsAutomaticSync = false | ||||
| req.CreatorId = ctx.User.ID | req.CreatorId = ctx.User.ID | ||||
| @@ -619,6 +619,7 @@ func RegisterRoutes(m *macaron.Macaron) { | |||||
| m.Group("/specification", func() { | m.Group("/specification", func() { | ||||
| m.Get("", admin.GetSpecificationPage) | m.Get("", admin.GetSpecificationPage) | ||||
| m.Get("/list", admin.GetResourceSpecificationList) | m.Get("/list", admin.GetResourceSpecificationList) | ||||
| m.Get("/scenes/:id", admin.GetResourceSpecificationScenes) | |||||
| m.Post("/grampus/sync", admin.SyncGrampusSpecs) | m.Post("/grampus/sync", admin.SyncGrampusSpecs) | ||||
| m.Post("/add", binding.Bind(models.ResourceSpecificationReq{}), admin.AddResourceSpecification) | m.Post("/add", binding.Bind(models.ResourceSpecificationReq{}), admin.AddResourceSpecification) | ||||
| m.Post("/update/:id", binding.BindIgnErr(models.ResourceSpecificationReq{}), admin.UpdateResourceSpecification) | m.Post("/update/:id", binding.BindIgnErr(models.ResourceSpecificationReq{}), admin.UpdateResourceSpecification) | ||||
| @@ -125,6 +125,15 @@ func GetResourceSpecificationList(opts models.SearchResourceSpecificationOptions | |||||
| return models.NewResourceSpecAndQueueListRes(n, r), nil | return models.NewResourceSpecAndQueueListRes(n, r), nil | ||||
| } | } | ||||
| func GetResourceSpecificationScenes(specId int64) ([]models.ResourceSceneBriefRes, error) { | |||||
| r, err := models.GetSpecScenes(specId) | |||||
| if err != nil { | |||||
| return nil, err | |||||
| } | |||||
| return r, nil | |||||
| } | |||||
| func ResourceSpecOnShelf(doerId int64, id int64, req models.ResourceSpecificationReq) *response.BizError { | func ResourceSpecOnShelf(doerId int64, id int64, req models.ResourceSpecificationReq) *response.BizError { | ||||
| spec, err := models.GetResourceSpecification(&models.ResourceSpecification{ID: id}) | spec, err := models.GetResourceSpecification(&models.ResourceSpecification{ID: id}) | ||||
| if err != nil { | if err != nil { | ||||