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 SalesRefundApi struct{} // Add // // @Tags SalesRefund // @Summary 添加销售退款 // @Produce application/json // @Param object body request.AddSalesRefundRequest true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesRefund/add [post] func (s *SalesRefundApi) Add(c *gin.Context) { var params request.AddSalesRefundRequest ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesRefund := checkSalesRefundParams(params.SalesRefund) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = salesRefundService.AddSalesRefund(&salesRefund) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags SalesRefund // @Summary 删除销售退款 // @Produce application/json // @Param id path int true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesRefund/delete/{id} [delete] func (s *SalesRefundApi) Delete(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } id, _ := strconv.Atoi(c.Param("id")) errCode := salesRefundService.DeleteSalesRefund(id) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Update // // @Tags SalesRefund // @Summary 更新销售退款 // @Produce application/json // @Param object body request.UpdateSalesRefundRequest true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesRefund/update [put] func (s *SalesRefundApi) Update(c *gin.Context) { var params request.UpdateSalesRefundRequest ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesRefund := checkSalesRefundParams(params.SalesRefund) if errCode != ecode.OK { ctx.Fail(errCode) return } salesRefund.Id = params.Id errCode = salesRefundService.UpdateSalesRefund(&salesRefund) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // List // // @Tags SalesRefund // @Summary 销售退款列表 // @Produce application/json // @Success 200 {object} contextx.Response{data=response.SalesRefundResponse} // @Router /api/salesRefund/list [get] func (s *SalesRefundApi) List(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } list, errCode := salesRefundService.GetSalesRefundList() if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.SalesRefundResponse{ List: list, }) } func checkSalesRefundParams(salesRefund request.SalesRefund) (errCode int, salesRefundRes model.SalesRefund) { if salesRefund.ClientId == 0 { return ecode.InvalidParams, salesRefundRes } if salesRefund.Number == "" { return ecode.InvalidParams, salesRefundRes } if salesRefund.MemberId == 0 { return ecode.InvalidParams, salesRefundRes } if salesRefund.RefundDate == "" { return ecode.InvalidParams, salesRefundRes } t, err := checkTimeFormat(salesRefund.RefundDate) if err != nil { return ecode.InvalidParams, salesRefundRes } salesRefundRes.RefundDate = t salesRefundRes.ClientId = salesRefund.ClientId salesRefundRes.Number = salesRefund.Number salesRefundRes.MemberId = salesRefund.MemberId salesRefundRes.RefundMethod = salesRefund.RefundMethod salesRefundRes.AccountId = salesRefund.AccountId salesRefundRes.IsInvoice = salesRefund.IsInvoice salesRefundRes.Reason = salesRefund.Reason salesRefundRes.Products = salesRefund.Products return ecode.OK, salesRefundRes }