Files
jx-callback/controllers/cms_food_recipe.go

155 lines
6.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package controllers
import (
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/userstore"
"github.com/astaxie/beego"
)
type FoodRecipeController struct {
beego.Controller
}
// @Title 创建菜谱
// @Description 创建菜谱
// @Param token header string true "认证token"
// @Param name formData string true "菜谱名"
// @Param description formData string true "菜谱描述"
// @Param img formData string true "图片""
// @Param timeInMinute formData int true "大约需要时间(分钟)"
// @Param recipeItems formData string true "菜谱配料"
// @Param recipeSteps formData string true "菜谱步骤"
// @Param authorID formData string false "三方用户ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /CreateFoodRecipe [post]
func (c *FoodRecipeController) CreateFoodRecipe() {
c.callCreateFoodRecipe(func(params *tFoodrecipeCreateFoodRecipeParams) (retVal interface{}, errCode string, err error) {
var (
foodRecipe *model.FoodRecipe
itemList []*userstore.FoodRecipeItemParam
stepList []*userstore.FoodRecipeStepParam
)
if err = jxutils.Strings2Objs(params.RecipeItems, &itemList, params.RecipeSteps, &stepList); err == nil {
foodRecipe = &model.FoodRecipe{
Name: params.Name,
Description: params.Description,
Img: params.Img,
TimeInMinute: params.TimeInMinute,
}
err = userstore.CreateFoodRecipe(params.Ctx, foodRecipe, itemList, stepList, params.AuthorID)
}
return retVal, "", err
})
}
// @Title 编辑菜谱
// @Description 编辑菜谱
// @Param token header string true "认证token"
// @Param recipeID formData int true "菜谱ID"
// @Param name formData string false "菜谱名"
// @Param description formData string false "菜谱描述"
// @Param img formData string false "图片""
// @Param timeInMinute formData int false "大约需要时间(分钟)"
// @Param recipeItems formData string false "菜谱配料"
// @Param recipeSteps formData string false "菜谱步骤"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UpdateFoodRecipe [put]
func (c *FoodRecipeController) UpdateFoodRecipe() {
c.callUpdateFoodRecipe(func(params *tFoodrecipeUpdateFoodRecipeParams) (retVal interface{}, errCode string, err error) {
var (
itemList []*userstore.FoodRecipeItemParam
stepList []*userstore.FoodRecipeStepParam
)
if err = jxutils.Strings2Objs(params.RecipeItems, &itemList, params.RecipeSteps, &stepList); err == nil {
err = userstore.UpdateFoodRecipe(params.Ctx, params.RecipeID, params.MapData, itemList, stepList)
}
return retVal, "", err
})
}
// @Title 查询菜谱列表
// @Description 查询菜谱列表
// @Param token header string false "认证token"
// @Param keyword query string false "关键字"
// @Param authorID query string false "创建者ID"
// @Param skuIDs query string false "skuID列表"
// @Param offset query int false "菜谱列表起始序号以0开始缺省为0"
// @Param pageSize query int false "菜谱列表页大小缺省为50-1表示全部"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /QueryFoodRecipes [get]
func (c *FoodRecipeController) QueryFoodRecipes() {
c.callQueryFoodRecipes(func(params *tFoodrecipeQueryFoodRecipesParams) (retVal interface{}, errCode string, err error) {
var skuIDs []int
if err = jxutils.Strings2Objs(params.SkuIDs, &skuIDs); err == nil {
retVal, err = userstore.QueryFoodRecipes(params.Ctx, params.Keyword, params.AuthorID, skuIDs, params.Offset, params.PageSize)
}
return retVal, "", err
})
}
// @Title 得到我的推荐菜谱列表
// @Description 得到我的推荐菜谱列表
// @Param token header string false "认证token"
// @Param keyword query string false "关键字"
// @Param offset query int false "菜谱列表起始序号以0开始缺省为0"
// @Param pageSize query int false "菜谱列表页大小缺省为50-1表示全部"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetRecommendFoodRecipes [get]
func (c *FoodRecipeController) GetRecommendFoodRecipes() {
c.callGetRecommendFoodRecipes(func(params *tFoodrecipeGetRecommendFoodRecipesParams) (retVal interface{}, errCode string, err error) {
retVal, err = userstore.GetRecommendFoodRecipes(params.Ctx, params.Keyword, params.Offset, params.PageSize)
return retVal, "", err
})
}
// @Title 得到菜谱详情
// @Description 得到菜谱详情
// @Param token header string false "认证token"
// @Param recipeID query int true "菜谱ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetRecipeDetail [get]
func (c *FoodRecipeController) GetRecipeDetail() {
c.callGetRecipeDetail(func(params *tFoodrecipeGetRecipeDetailParams) (retVal interface{}, errCode string, err error) {
retVal, err = userstore.GetRecipeDetail(params.Ctx, params.RecipeID)
return retVal, "", err
})
}
// @Title 对菜谱投票
// @Description 对菜谱投票
// @Param token header string true "认证token"
// @Param recipeID formData int true "菜谱ID"
// @Param voteType formData int true "-10取消之前的投票1赞"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /VoteFoodRecipe [post]
func (c *FoodRecipeController) VoteFoodRecipe() {
c.callVoteFoodRecipe(func(params *tFoodrecipeVoteFoodRecipeParams) (retVal interface{}, errCode string, err error) {
err = userstore.VoteFoodRecipe(params.Ctx, params.RecipeID, params.VoteType)
return retVal, "", err
})
}
// @Title 删除菜谱
// @Description 删除菜谱
// @Param token header string true "认证token"
// @Param recipeIDs query string true "菜谱ID列表"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /DeleteRecipes [delete]
func (c *FoodRecipeController) DeleteRecipes() {
c.callDeleteRecipes(func(params *tFoodrecipeDeleteRecipesParams) (retVal interface{}, errCode string, err error) {
var recipeIDs []int
if err = jxutils.Strings2Objs(params.RecipeIDs, &recipeIDs); err == nil {
retVal, err = userstore.DeleteRecipes(params.Ctx, recipeIDs)
}
return retVal, "", err
})
}