package controllers
|
|
import (
|
"github.com/gin-gonic/gin"
|
"gorm.io/gorm"
|
"silkserver/constvar"
|
"silkserver/controllers/request"
|
"silkserver/extend/code"
|
"silkserver/extend/util"
|
"silkserver/middleware"
|
"silkserver/models"
|
"silkserver/pkg/timex"
|
"strconv"
|
"time"
|
)
|
|
type SalaryPlanController struct {
|
}
|
|
// SaveSalaryPlan
|
//
|
// @Tags 员工薪资/薪酬方案
|
// @Summary 保存薪酬方案
|
// @Produce application/json
|
// @Param object body models.SalaryPlan true "参数"
|
// @Param Authorization header string true "token"
|
// @Success 200 {object} util.Response "成功"
|
// @Router /api-jl/v1/salary/saveSalaryPlan [post]
|
func (slf SalaryPlanController) SaveSalaryPlan(c *gin.Context) {
|
var params models.SalaryPlan
|
err := c.BindJSON(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
|
return
|
}
|
if params.ID > 0 {
|
//更新
|
err = models.NewSalaryPlanSearch().Save(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "保存失败")
|
return
|
}
|
} else {
|
//新建
|
info := middleware.GetUserInfo(c)
|
params.AddPeople = info.NickName
|
params.CreateTime = timex.TimeToString2(time.Now())
|
err = models.NewSalaryPlanSearch().Create(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "保存失败")
|
return
|
}
|
}
|
|
util.ResponseFormat(c, code.Success, "保存成功")
|
}
|
|
// GetSalaryPlanList
|
//
|
// @Tags 员工薪资/薪酬方案
|
// @Summary 获取薪酬方案列表
|
// @Produce application/json
|
// @Param object body request.GetSalaryPlanList true "参数"
|
// @Param Authorization header string true "token"
|
// @Success 200 {object} util.ResponseList{data=[]models.SalaryPlan} "成功"
|
// @Router /api-jl/v1/salary/getSalaryPlanList [post]
|
func (slf SalaryPlanController) GetSalaryPlanList(c *gin.Context) {
|
var params request.GetSalaryPlanList
|
err := c.BindJSON(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
|
return
|
}
|
find, total, err := models.NewSalaryPlanSearch().SetPage(params.Page, params.PageSize).SetPreload(true).Find()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "查找失败")
|
return
|
}
|
util.ResponseFormatList(c, code.Success, find, total)
|
}
|
|
// DeleteSalaryPlanInfo
|
//
|
// @Tags 员工薪资/薪酬方案
|
// @Summary 删除薪酬方案
|
// @Produce application/json
|
// @Param id path string true "id"
|
// @Param Authorization header string true "token"
|
// @Success 200 {object} util.Response "成功"
|
// @Router /api-jl/v1/salary/deleteSalaryPlanInfo/{id} [delete]
|
func (slf SalaryPlanController) DeleteSalaryPlanInfo(c *gin.Context) {
|
id := c.Param("id")
|
if id == "" {
|
util.ResponseFormat(c, code.RequestParamError, "无效的id")
|
return
|
}
|
atoi, _ := strconv.Atoi(id)
|
if atoi == 0 {
|
util.ResponseFormat(c, code.RequestParamError, "无效的id")
|
return
|
}
|
err := models.NewSalaryPlanSearch().SetId(atoi).Delete()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "删除失败")
|
return
|
}
|
util.ResponseFormat(c, code.Success, "删除成功")
|
}
|
|
// SaveSalaryType
|
//
|
// @Tags 员工薪资/薪酬方案
|
// @Summary 保存薪资类型
|
// @Produce application/json
|
// @Param object body request.SalaryType true "参数"
|
// @Param Authorization header string true "token"
|
// @Success 200 {object} util.Response "成功"
|
// @Router /api-jl/v1/salary/saveSalaryType [post]
|
func (slf SalaryPlanController) SaveSalaryType(c *gin.Context) {
|
var params request.SalaryType
|
err := c.BindJSON(¶ms)
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
|
return
|
}
|
if params.Type == 0 {
|
util.ResponseFormat(c, code.RequestParamError, "类型不能为空")
|
return
|
}
|
types := make([]*models.MiniDict, 0)
|
for _, value := range params.Values {
|
var dict models.MiniDict
|
dict.Name = value.Name
|
dict.IsDefault = value.IsDefault
|
dict.Type = params.Type
|
types = append(types, &dict)
|
}
|
err = models.WithTransaction(func(db *gorm.DB) error {
|
err = models.NewMiniDictSearch().SetOrm(db).SetType(params.Type).Delete()
|
if err != nil {
|
return err
|
}
|
err = models.NewMiniDictSearch().SetOrm(db).CreateBatch(types)
|
if err != nil {
|
return err
|
}
|
return nil
|
})
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "保存失败")
|
return
|
}
|
util.ResponseFormat(c, code.Success, "保存成功")
|
}
|
|
// GetSalaryTypeList
|
//
|
// @Tags 员工薪资/薪酬方案
|
// @Summary 获取薪资类型列表
|
// @Produce application/json
|
// @Param number path string true "type" "参数"
|
// @Param Authorization header string true "token"
|
// @Success 200 {object} util.ResponseList{data=[]models.MiniDict} "成功"
|
// @Router /api-jl/v1/salary/getSalaryTypeList/{type} [get]
|
func (slf SalaryPlanController) GetSalaryTypeList(c *gin.Context) {
|
tp := c.Param("type")
|
if tp == "" {
|
util.ResponseFormat(c, code.RequestParamError, "无效的类型")
|
return
|
}
|
atoi, _ := strconv.Atoi(tp)
|
if atoi == 0 {
|
util.ResponseFormat(c, code.RequestParamError, "无效的类型")
|
return
|
}
|
dicts, err := models.NewMiniDictSearch().SetType(constvar.MiniDictType(atoi)).FindNotTotal()
|
if err != nil {
|
util.ResponseFormat(c, code.RequestParamError, "查询失败")
|
return
|
}
|
util.ResponseFormat(c, code.Success, dicts)
|
}
|