155 lines
6.4 KiB
Go
155 lines
6.4 KiB
Go
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 "-1:踩,0:取消之前的投票,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
|
||
})
|
||
}
|