package controllers

import (
	"github.com/astaxie/beego/validation"
	"gitlab.fjmaimaimai.com/mmm-go/gocomm/common"
	"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
	"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/mybeego"
)

type BaseController struct {
	mybeego.BaseController
}

//Valid  valid struct
func (this *BaseController)Valid(obj interface{})(result bool ,msg *mybeego.Message){
	/*校验*/
	var err error
	valid :=validation.Validation{}
	result,err= valid.Valid(obj)
	if err!=nil{
		msg = mybeego.NewMessage(1)
		return
	}
	if !result{
		for _, err := range valid.Errors {
			log.Error(err.Key, err.Message)
		}
		msg = mybeego.NewMessage(2)
		return
	}
	return
}

//GenMessage genarate a response message
func (this *BaseController)GenMessage(rsp interface{},err error)*mybeego.Message{
	var msg *mybeego.Message
	if err==nil{
		msg = mybeego.NewMessage(0)
		msg.Data = rsp
		return msg
	}
	if e,ok :=err.(common.Error);ok{
		msg = mybeego.NewMessage(e.Code)
		msg.Data = rsp
		return msg
	}
	msg = mybeego.NewMessage(1)
	return msg
}