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 ServiceContractApi struct{} // Add // // @Tags ServiceContract // @Summary 添加服务合同 // @Produce application/json // @Param object body request.AddServiceContract true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/serviceContract/add [post] func (s *ServiceContractApi) Add(c *gin.Context) { var params request.AddServiceContract ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, serviceContract := checkServiceContractParams(params.ServiceContract) if errCode != ecode.OK { ctx.Fail(errCode) return } errCode = serviceContractService.AddServiceContract(&serviceContract) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Delete // // @Tags ServiceContract // @Summary 删除服务合同 // @Produce application/json // @Param id path int true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/serviceContract/delete/{id} [delete] func (s *ServiceContractApi) Delete(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } id, _ := strconv.Atoi(c.Param("id")) errCode := serviceContractService.DeleteServiceContract(id) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // Update // // @Tags ServiceContract // @Summary 更新服务合同 // @Produce application/json // @Param object body request.UpdateServiceContract true "查询参数" // @Success 200 {object} contextx.Response{} // @Router /api/serviceContract/update [put] func (s *ServiceContractApi) Update(c *gin.Context) { var params request.UpdateServiceContract ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } errCode, serviceContract := checkServiceContractParams(params.ServiceContract) if errCode != ecode.OK { ctx.Fail(errCode) return } serviceContract.Id = params.Id errCode = serviceContractService.UpdateServiceContract(&serviceContract) if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.Ok() } // List // // @Tags ServiceContract // @Summary 服务合同列表 // @Produce application/json // @Success 200 {object} contextx.Response{data=response.ServiceContractsResponse} // @Router /api/serviceContract/list [get] func (s *ServiceContractApi) List(c *gin.Context) { ctx, ok := contextx.NewContext(c, nil) if !ok { return } serviceContracts, errCode := serviceContractService.GetServiceContractList() if errCode != ecode.OK { ctx.Fail(errCode) return } ctx.OkWithDetailed(response.ServiceContractsResponse{ List: serviceContracts, }) } // check params func checkServiceContractParams(serviceContract request.ServiceContract) (errCode int, result model.ServiceContract) { //if serviceContract.SignTime == "" { // return ecode.InvalidParams, result //} // //if serviceContract.Number == "" { // return ecode.InvalidParams, result //} // //if serviceContract.MemberId <= 0 { // return ecode.InvalidParams, result //} t, err := checkTimeFormat(serviceContract.SignTime) if err != nil { return ecode.InvalidParams, result } result.SignTime = t t, err = checkTimeFormat(serviceContract.StartTime) if err != nil { return ecode.InvalidParams, result } result.StartTime = t t, err = checkTimeFormat(serviceContract.EndTime) if err != nil { return ecode.InvalidParams, result } result.EndTime = t result.Number = serviceContract.Number result.MemberId = serviceContract.MemberId result.Remark = serviceContract.Remark result.ClientId = serviceContract.ClientId result.ContactId = serviceContract.ContactId result.SaleChanceId = serviceContract.SaleChanceId result.QuotationId = serviceContract.QuotationId result.ServiceContractTypeId = serviceContract.TypeId result.ServiceContractStatusId = serviceContract.StatusId result.ServiceTimes = serviceContract.ServiceTimes result.Terms = serviceContract.Terms result.Products = serviceContract.Products return ecode.OK, result }