| | |
| | | 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" |
| | | ) |
| | | |
| | | type ServiceContractApi struct{} |
| | |
| | | if !ok { |
| | | return |
| | | } |
| | | errCode, serviceContract := checkServiceContractParams(params.ServiceContract) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | |
| | | serviceContract := new(model.ServiceContract) |
| | | if err := structx.AssignTo(params, serviceContract); err != nil { |
| | | ctx.Fail(ecode.ParamsErr) |
| | | return |
| | | } |
| | | |
| | | errCode = serviceContractService.AddServiceContract(&serviceContract) |
| | | count, err := model.NewServiceContractSearch().SetNumber(params.Number).Count() |
| | | if err != nil { |
| | | ctx.FailWithMsg(ecode.UnknownErr, "编码验证失败") |
| | | return |
| | | } |
| | | if count > 0 { |
| | | ctx.FailWithMsg(ecode.UnknownErr, "编码已存在") |
| | | return |
| | | } |
| | | |
| | | if params.MemberId == 0 { |
| | | userInfo := utils.GetUserInfo(c) |
| | | if userInfo.UserType == constvar.UserTypeSub { |
| | | params.MemberId = userInfo.CrmUserId |
| | | } |
| | | } |
| | | |
| | | 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) |
| | | // BatchDelete |
| | | // @Tags ServiceContract |
| | | // @Summary 批量删除服务合同 |
| | | // @Produce application/json |
| | | // @Param object body request.CommonIds true "参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/serviceContract/delete [delete] |
| | | func (s *ServiceContractApi) BatchDelete(c *gin.Context) { |
| | | var params request.CommonIds |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | id, _ := strconv.Atoi(c.Param("id")) |
| | | errCode := serviceContractService.DeleteServiceContract(id) |
| | | errCode := serviceContractService.BatchDeleteServiceContract(params.Ids) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | |
| | | return |
| | | } |
| | | |
| | | errCode, serviceContract := checkServiceContractParams(params.ServiceContract) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | serviceContract := new(model.ServiceContract) |
| | | if err := structx.AssignTo(params, serviceContract); err != nil { |
| | | ctx.Fail(ecode.ParamsErr) |
| | | return |
| | | } |
| | | |
| | | serviceContract.Id = params.Id |
| | | |
| | | errCode = serviceContractService.UpdateServiceContract(&serviceContract) |
| | | errCode := serviceContractService.UpdateServiceContract(serviceContract) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // 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 |
| | | } |
| | | |
| | | // List |
| | | // |
| | | // @Tags ServiceContract |
| | | // @Summary 生成计划列表 |
| | | // @Tags ServiceContract |
| | | // @Summary 服务合同列表 |
| | | // @Produce application/json |
| | | // @Param object body request.GetServiceContractList true "参数" |
| | | // @Success 200 {object} contextx.Response{data=response.ServiceContractsResponse} |
| | |
| | | return |
| | | } |
| | | |
| | | serviceContracts, total, errCode := serviceContractService.GetServiceContractList(params.Page, params.PageSize, params.QueryClass, params.KeywordType, params.Keyword) |
| | | var memberIds []int |
| | | userInfo := utils.GetUserInfo(c) |
| | | if userInfo.UserType == constvar.UserTypeSub { |
| | | memberIds = userInfo.SubUserIds |
| | | } |
| | | |
| | | serviceContracts, total, errCode := serviceContractService.GetServiceContractList(params, memberIds) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |