package v1
|
|
import (
|
"aps_crm/constvar"
|
"aps_crm/model"
|
"aps_crm/model/request"
|
"aps_crm/pkg/contextx"
|
"aps_crm/pkg/ecode"
|
"aps_crm/utils"
|
"github.com/gin-gonic/gin"
|
)
|
|
type VettingApi struct{}
|
|
// Add
|
//
|
// @Tags Vetting
|
// @Summary 添加审批
|
// @Produce application/json
|
// @Param object body request.AddVetting true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/vetting/add [post]
|
func (vet *VettingApi) Add(c *gin.Context) {
|
var params request.AddVetting
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
errCode, vetting := checkVettingParams(¶ms)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
// check member exist
|
|
errCode = vettingService.AddVetting(vetting)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
// Update
|
//
|
// @Tags Vetting
|
// @Summary 更新审批
|
// @Produce application/json
|
// @Param object body request.UpdateVetting true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/vetting/update [post]
|
func (vet *VettingApi) Update(c *gin.Context) {
|
var params request.UpdateVetting
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
vetting, err := model.NewVettingSearch().SetId(params.Id).Get()
|
if err != nil {
|
ctx.Fail(ecode.VettingNotExist)
|
return
|
}
|
|
waitUse, _ := utils.GetClaims(c)
|
// 如何当前用户是超级管理员,则不需要判断
|
if waitUse.UserType != constvar.UserTypeSuper {
|
userId := waitUse.UserId
|
user, err := model.NewUserSearch(nil).SetId(userId).First()
|
if err != nil {
|
return
|
}
|
|
if user.ID != vetting.UserId {
|
ctx.Fail(ecode.VettingNotBelongToUser)
|
return
|
}
|
}
|
|
vetting.Status = params.Status
|
|
errCode := vettingService.UpdateVetting(vetting)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
func checkVettingParams(vetting *request.AddVetting) (int, *model.Vetting) {
|
|
v := &model.Vetting{
|
Opinion: vetting.Opinion,
|
Status: vetting.Status,
|
UserId: vetting.UserId,
|
VettingId: vetting.VettingId,
|
}
|
|
return ecode.OK, v
|
}
|