package v1 import ( "aps_crm/constvar" "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "aps_crm/pkg/structx" "aps_crm/utils" "github.com/gin-gonic/gin" "strconv" "strings" ) type SalesReturnApi struct{} // Add // // @Tags 销售退货单 // @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 } count, err := model.NewSalesReturnSearch().SetNumber(salesReturn.Number).Count() if err != nil { ctx.FailWithMsg(ecode.UnknownErr, "编码验证失败") return } if count > 0 { ctx.FailWithMsg(ecode.UnknownErr, "编码已存在") return } if salesReturn.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { salesReturn.MemberId = userInfo.CrmUserId } } errCode = salesReturnService.AddSalesReturn(&salesReturn) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags 销售退货单 // @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() } // BatchDelete // @Tags 销售退货单 // @Summary 批量删除销售退货单 // @Produce application/json // @Param object body request.CommonIds true "参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesReturn/delete [delete] func (s *SalesReturnApi) BatchDelete(c *gin.Context) { var params request.CommonIds ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } failIds, _ := salesReturnService.BatchDeleteSalesReturn(params.Ids) if len(failIds) == 0 { ctx.Ok() return } salesReturns, code := salesReturnService.GetSalesReturnListByIds(failIds) if code != ecode.OK { ctx.Ok() return } var numbers []string for _, salesReturn := range salesReturns { numbers = append(numbers, salesReturn.Number) } ctx.FailWithMsg(ecode.DBErr, strings.Join(numbers, ",")+"删除失败") } // Update // // @Tags 销售退货单 // @Summary 更新销售退货 // @Produce application/json // @Param object body request.UpdateSalesReturnRequest true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesReturn/update [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() } func checkSalesReturnParams(salesReturn request.SalesReturn) (errCode int, s model.SalesReturn) { err := structx.AssignTo(salesReturn, &s) if err != nil { return ecode.ParamsErr, s } return ecode.OK, s } // List // // @Tags 销售退货单 // @Summary 销售退货单列表 // @Produce application/json // // @Param object body request.GetSalesReturnList true "参数" // // @Success 200 {object} contextx.Response{data=response.SalesReturnResponse} // @Router /api/salesReturn/list [post] func (con *SalesReturnApi) List(c *gin.Context) { var params request.GetSalesReturnList ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } var memberIds []int userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { memberIds = userInfo.SubUserIds } salesReturns, total, errCode := salesReturnService.GetSalesReturnList(params, memberIds) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.SalesReturnResponse{ List: salesReturns, Count: int(total), }) }