staff_assess_controller.go 8.4 KB
package controllers

import (
	"github.com/linmadan/egglib-go/core/application"
	"github.com/linmadan/egglib-go/web/beego"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/command"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/query"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/staff_assess/service"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/middlewares"
)

type StaffAssessController struct {
	beego.BaseController
}

// 获取我的绩效任务列表
func (c *StaffAssessController) SearchAssessTaskMe() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.SearchAssessMeQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.UserId = int(userReq.UserId)

	data, err := srv.SearchAssessTaskMe(paramReq)
	c.Response(data, err)
}

// 获取我的绩效任务各环节完成情况
func (c *StaffAssessController) AssessTaskMeDesc() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.AssessTaskDescQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.UserId = int(userReq.UserId)
	data, err := srv.AssessTaskDesc(paramReq)
	c.Response(data, err)
}

// 获取个人的自评反馈历史记录列表
func (c *StaffAssessController) AssessSelfMeList() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.AssessSelfListQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.UserId = int(userReq.UserId)
	data, err := srv.AssessSelfList(paramReq)
	c.Response(data, err)
}

// 更具项目评估的配置,创建员工的评估任务,(调试用)
// func (c *StaffAssessController) CreateStaffAssessTask() {
// 	srv := service.NewStaffAssessServeice()
// 	paramReq := &command.CreateStaffAssessTask{}
// 	err := c.BindJSON(paramReq)
// 	if err != nil {
// 		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
// 		c.Response(nil, e)
// 		return
// 	}
// 	//服务调用,实际由定时任务触发
// 	data, err := srv.CreateStaffAssessTask(paramReq)
// 	c.Response(data, err)
// }

// 获取当前登录员工自评详情
func (c *StaffAssessController) GetAssessSelfMeInfo() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.AssessSelfInfoQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.TargetUserId = int(userReq.UserId)
	data, err := srv.GetAssessSelfInfo(paramReq)
	c.Response(data, err)
}

// 获取我邀请的人
func (c *StaffAssessController) GetAssessMeInviteUser() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.GetAssessInviteUserQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.UserId = int(userReq.UserId)
	data, err := srv.GetAssessInviteUser(paramReq)
	c.Response(data, err)
}

// 保持我邀请的员工
func (c *StaffAssessController) SaveAssessMeInviteUser() {
	srv := service.NewStaffAssessServeice()
	paramReq := &command.SaveAssessInvite{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	//TODO 获取当前用户信息
	// paramReq.CompanyId = 1
	// paramReq.UserId = 1
	data, err := srv.SaveAssessInviteUser(paramReq)
	c.Response(data, err)
}

// 员工邀请的人选择列表
func (c *StaffAssessController) SelectAssessInviteUser() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.SelectAssessInviteUser{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	// paramReq.CompanyId = 1
	// paramReq.TargetUserId = 1
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.TargetUserId = int(userReq.UserId)
	data, err := srv.SelectAssessInviteUser(paramReq)
	c.Response(data, err)
}

// 获取我要执行360评估,用户列表和评估填写的值
func (c *StaffAssessController) ListMeInviteUserAssess() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.ListInviteUserAssessQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	//获取当前用户信息
	// paramReq.CompanyId = 1
	// paramReq.ExecutorId = 1
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.ExecutorId = int(userReq.UserId)
	data, err := srv.ListExecutorInviteAssess(paramReq)
	c.Response(data, err)
}

// 获取我要执行的上级评估成员列表
func (c *StaffAssessController) ListMeSupperAssess() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.ListSupperAssessQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	//TODO 获取当前用户信息
	// paramReq.CompanyId = 1
	// paramReq.ExecutorId = 1
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.ExecutorId = int(userReq.UserId)
	data, err := srv.ListExecutorSupperAssess(paramReq)
	c.Response(data, err)
}

// 获取员工自评详情
func (c *StaffAssessController) GetAssessTargetUserSelfInfo() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.AssessSelfInfoQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	// paramReq.CompanyId = 1
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	data, err := srv.GetAssessSelfInfo(paramReq)
	c.Response(data, err)
}

// 获取评估内容详情
func (c *StaffAssessController) GetAssessInfo() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.AssessInfoQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	// paramReq.CompanyId = 1
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	data, err := srv.GetAssessInfo(paramReq)
	c.Response(data, err)
}

// 保存评估内容详情
func (c *StaffAssessController) SaveAssessInfo() {
	srv := service.NewStaffAssessServeice()
	paramReq := &command.SaveAssessInfoCommand{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	data, err := srv.SaveAssessInfo(paramReq)
	c.Response(data, err)
}

// 被评估的员工的评估列表-360评估
func (c *StaffAssessController) ListTargetUserInviteAssess() {
	srv := service.NewStaffAssessServeice()
	paramReq := &query.ListTargetUserAssessQuery{}
	err := c.BindJSON(paramReq)
	if err != nil {
		e := application.ThrowError(application.ARG_ERROR, "json 解析错误"+err.Error())
		c.Response(nil, e)
		return
	}
	// paramReq.CompanyId = 1
	userReq := middlewares.GetUser(c.Ctx)
	paramReq.CompanyId = int(userReq.CompanyId)
	paramReq.Types = []string{string(domain.AssessInviteSameSuper), string(domain.AssessInviteDiffSuper)}
	data, err := srv.ListTargetUserAssess(paramReq)
	c.Response(data, err)
}