package v1 import ( "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "github.com/gin-gonic/gin" "strconv" ) type SalesReturnApi struct{} // Add // // @Tags SalesReturn // @Summary 添加销售退货 // @Produce application/json // @Param object body request.AddSalesReturnRequest true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesReturn/add [post] func (s *SalesReturnApi) Add(c *gin.Context) { var params request.AddSalesReturnRequest ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesReturn := checkSalesReturnParams(params.SalesReturn) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = salesReturnService.AddSalesReturn(&salesReturn) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags SalesReturn // @Summary 删除销售退货 // @Produce application/json // @Param id path int true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesReturn/delete/{id} [delete] func (s *SalesReturnApi) Delete(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } id, _ := strconv.Atoi(c.Param("id")) errCode := salesReturnService.DeleteSalesReturn(id) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Update // // @Tags SalesReturn // @Summary 更新销售退货 // @Produce application/json // @Param object body request.UpdateSalesReturnRequest true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesReturn/update/{id} [put] func (s *SalesReturnApi) Update(c *gin.Context) { var params request.UpdateSalesReturnRequest ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesReturn := checkSalesReturnParams(params.SalesReturn) if errCode != ecode.OK { ctx.Fail(errCode) return } salesReturn.Id = params.Id errCode = salesReturnService.UpdateSalesReturn(&salesReturn) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // List // // @Tags SalesReturn // @Summary 获取销售退货列表 // @Produce application/json // @Success 200 {object} contextx.Response{} // @Router /api/salesReturn/list [get] func (s *SalesReturnApi) List(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } salesReturns, errCode := salesReturnService.GetSalesReturnList() if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.SalesReturnResponse{ List: salesReturns, }) } func checkSalesReturnParams(salesReturn request.SalesReturn) (errCode int, s model.SalesReturn) { if salesReturn.Number == "" { return ecode.InvalidParams, s } if salesReturn.Repository == "" { return ecode.InvalidParams, s } if salesReturn.MemberId == 0 { return ecode.InvalidParams, s } t, err := checkTimeFormat(salesReturn.ReturnDate) if err != nil { return ecode.InvalidParams, s } s.ClientId = salesReturn.ClientId s.ReturnDate = t s.Number = salesReturn.Number s.Repository = salesReturn.Repository s.MemberId = salesReturn.MemberId s.Status = salesReturn.Status s.Reason = salesReturn.Reason s.Products = salesReturn.Products return ecode.OK, s }