/*
 * @description: 项目相关 api
 * @Author: CP
 * @Date: 2020-09-23 09:46:21
 * @FilePath: \construction_management\web\api\project_api.go
 */
package api

import (
	"fmt"

	"github.com/kataras/iris/v12"
	"go.mod/services"
	"go.mod/web/utils"
	"go.mod/web/viewmodels"
)

type ProjectApi struct {
	//框架-web应用上下文环境
	Ctx iris.Context
	// 需要用的service
	ServiceProject services.ProjectService
}

// @Summary 获得登陆项目信息
// @Tags 项目相关
// @Description 获得登陆项目信息
// @Accept  json
// @Produce  json
// @Security ApiKeyAuth
// @Success 200 {object} viewmodels.Project "{code:0成功,-1参数类错误,data:viewmodels.ProjectAccount,msg:错误信息}"
// @Router /api/project [get]
func (c *ProjectApi) Get() {
	// 获得项目ID
	projectIdInt, err := utils.GetProjectId(c.Ctx)
	if err != nil {
		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
		return
	}
	// 获得项目信息
	ProjectData := c.ServiceProject.Get(projectIdInt)
	c.Ctx.JSON(iris.Map{
		"code": 0,
		"data": ProjectData,
		"msg":  "",
	})
	// }
}

// 保存项目管理员信息
func (c *ProjectApi) PostSave() {
	// ErrMsg := ""
	// // 验证内容
	// AccountData, err := c.ServiceProjectAccount.ValidRule(c.Ctx)
	// if err != nil {
	// 	ErrMsg = utils.FormValidError(err)
	// 	comm.Redirect(c.Ctx.ResponseWriter(), "/account?errMsg="+ErrMsg)
	// } else {
	// 	// 获得更新用户ID
	// 	id, err := c.Ctx.Values().GetInt("accountId")
	// 	if err != nil {
	// 		comm.Redirect(c.Ctx.ResponseWriter(), "/account?errMsg="+ErrMsg)
	// 	}
	// 	// 保存信息
	// 	err = c.ServiceProjectAccount.Save(AccountData, id, 0)
	// 	if err != nil {
	// 		comm.Redirect(c.Ctx.ResponseWriter(), "/account?errMsg="+ErrMsg)
	// 	}
	// 	comm.Redirect(c.Ctx.ResponseWriter(), "/account?success=修改成功")
	// }
}

// 获得多个项目信息--暂无使用
func (c *ProjectApi) GetList() {
	// 验证内容
	ProjectData := viewmodels.Project{}
	err := c.Ctx.ReadForm(&ProjectData)
	if err != nil {
		c.Ctx.JSON(iris.Map{
			"code": -1,
			"msg":  "ReadForm转换异常",
		})
		return
	} else {
		// 获得项目信息
		dataList := c.ServiceProject.GetList(ProjectData)
		c.Ctx.JSON(iris.Map{
			"code": 0,
			"msg":  "",
			"data": dataList,
		})
	}
}
