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/utils" "github.com/gin-gonic/gin" "strconv" ) type SalesDetailsApi struct{} // Add // // @Tags SalesDetails // @Summary 添加销售明细 // @Produce application/json // @Param object body request.AddSalesDetails true "查询参数" // @Success 200 {object} contextx.Response{data=request.AddSalesDetails} // @Router /api/salesDetails/add [post] func (s *SalesDetailsApi) Add(c *gin.Context) { var params request.AddSalesDetails ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesDetails := checkSalesDetailsParams(params.SalesDetails) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = salesDetailsService.AddSalesDetails(&salesDetails) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(salesDetails) } // Delete // // @Tags SalesDetails // @Summary 删除销售明细 // @Produce application/json // @Param id path int true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesDetails/delete/{id} [delete] func (s *SalesDetailsApi) Delete(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } id, _ := strconv.Atoi(c.Param("id")) errCode := salesDetailsService.DeleteSalesDetails(id) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // BatchDelete // @Tags SalesDetails 销售明细 // @Summary 批量删除销售明细 // @Produce application/json // @Param object body request.CommonIds true "参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesDetails/delete [delete] func (s *SalesDetailsApi) BatchDelete(c *gin.Context) { var params request.CommonIds ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode := salesDetailsService.BatchDeleteSalesDetails(params.Ids) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Update // // @Tags SalesDetails // @Summary 更新销售明细 // @Produce application/json // @Param object body request.UpdateSalesDetails true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/salesDetails/update [put] func (s *SalesDetailsApi) Update(c *gin.Context) { var params request.UpdateSalesDetails ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, salesDetails := checkSalesDetailsParams(params.SalesDetails) if errCode != ecode.OK { ctx.Fail(errCode) return } salesDetails.Id = params.Id errCode = salesDetailsService.UpdateSalesDetails(&salesDetails) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } func checkSalesDetailsParams(salesDetails request.SalesDetails) (errCode int, salesDetailsModel model.SalesDetails) { salesDetailsModel.ClientId = salesDetails.ClientId salesDetailsModel.Number = salesDetails.Number salesDetailsModel.SaleChanceId = salesDetails.SaleChanceId salesDetailsModel.SaleType = salesDetails.SaleType salesDetailsModel.SignTime = salesDetails.SignTime salesDetailsModel.MemberId = salesDetails.MemberId salesDetailsModel.DeliveryDate = salesDetails.DeliveryDate salesDetailsModel.WechatOrderStatusId = salesDetails.WechatOrderStatusId salesDetailsModel.Address = salesDetails.Address salesDetailsModel.Phone = salesDetails.Phone salesDetailsModel.Remark = salesDetails.Remark salesDetailsModel.Addressee = salesDetails.Addressee salesDetailsModel.Conditions = salesDetails.Conditions salesDetailsModel.Products = salesDetails.Products salesDetailsModel.LogisticCompany = salesDetails.LogisticCompany salesDetailsModel.LogisticNumber = salesDetails.LogisticNumber salesDetailsModel.LogisticCost = salesDetails.LogisticCost return ecode.OK, salesDetailsModel } // List // // @Tags SalesDetails // @Summary 销售明细单列表 // @Produce application/json // @Param object body request.GetSalesDetailsList true "参数" // @Success 200 {object} contextx.Response{data=response.SalesDetailsResponse} // @Router /api/salesDetails/list [post] func (con *SalesDetailsApi) List(c *gin.Context) { var params request.GetSalesDetailsList ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } var memberIds []int userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { memberIds = []int{userInfo.CrmUserId} } salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params.Page, params.PageSize, params.KeywordType, params.Keyword, memberIds) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.SalesDetailsResponse{ List: salesDetailss, Count: int(total), }) }