/*
 * @description: 后台 登陆接口相关
 * @Author: CP
 * @Date: 2020-09-17 16:23:02
 * @FilePath: \construction_management\web\backstage\login_bs.go
 */
package backstage

import (
	"fmt"

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

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

// @Summary 后台-登录
// @Description 登录接口
// @Tags 后台 - 登录/登出
// @Accept  json
// @Produce  json
// @Param   staffName     body    string     true        "CLD账号" 	default(蔡频)
// @Param   password     body    string    true        "密码"		default(123456)
// @Success 200 {object} viewmodels.ProjectAccount "{code:0成功,data:viewmodels.ProjectAccount,msg:}"
// @Failure 400 {string} string	"{code:-1参数类错误,msg:错误信息}"
// @Router /backstage/login [post]
func (c *LoginBs) Post() {

	//验证规则
	LoginData, err := c.ServiceBackstage.ValidRuleLogin(c.Ctx)
	if err != nil {
		ErrMsg := utils.FormValidError(err)
		c.Ctx.JSON(iris.Map{"code": -1, "msg": ErrMsg})
		return
	}

	//验证登陆用户
	Data, err := c.ServiceBackstage.ValidCldStaff(LoginData, c.Ctx.ResponseWriter())
	if err != nil {
		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
		return
	}
	c.Ctx.JSON(iris.Map{
		"code": 0,
		"msg":  "",
		"data": Data,
	})
}

// @Summary 后台-登出
// @Tags 后台 - 登录/登出
// @Accept  json
// @Produce  json
// @Success 200 {string} string	"{code:0,msg:string}"
// @Failure 400 {string} string "{code:-1,msg:string}"
// @Router /backstage/login/out [post]
func (c *LoginBs) PostOut() {
	c.ServiceBackstage.Out(c.Ctx)
	c.Ctx.JSON(iris.Map{"code": 0, "msg": ""})
}
