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 }