package member

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"zhenyihuibao/business/cache"
	"zhenyihuibao/business/formValidate"
	"zhenyihuibao/business/services"
	"zhenyihuibao/common/constData"
	"zhenyihuibao/pkg/logging"
)

type Member struct {
}

var(
	userKey = "member.%v"
)

func(this *Member) GetProfile(c *gin.Context) {
	userId := c.GetInt("user_id")
	userKey := fmt.Sprintf(userKey, userId)
	memberInfo,ok := c.Get(userKey)
	if !ok {
		constData.ReturnHandle.Error(c, 10002, "获取失败")
		return
	}
	resData := map[string]interface{}{
		"member" : memberInfo,
	}
	constData.ReturnHandle.Success(c, "获取数据成功", resData)
}

func(this *Member) UpdateProfile(c *gin.Context) {
	var updateVli formValidate.MemberUpdateProfile
	var userId int
	err := c.ShouldBind(&updateVli)
	err = formValidate.CommonValidate1(updateVli)
	if err != nil {
		logging.MyLogger.Info(err, updateVli)
		constData.ReturnHandle.Error(c, 10005, err.Error())
		return
	}
	userId = c.GetInt("user_id")
	err = updateVli.ChecUniq(userId)
	if err != nil{
		logging.MyLogger.Info(err, updateVli)
		constData.ReturnHandle.Error(c, 10005, err.Error())
		return
	}
	err = services.UpdateMemberProfile(userId, &updateVli)
	if err != nil {
		constData.ReturnHandle.Error(c,  50000, err.Error())
		return
	}
	userToken,ok := c.Get("userToken")
	if ok{
		cache.DoCacheMemberInfo(userToken.(string))
	}
	fmt.Println("user", userId)
	constData.ReturnHandle.Success(c, "操作成功", "")
	return
}