| | |
| | | return |
| | | } |
| | | |
| | | serviceCollectionPlan, total, errCode := service.NewServiceCollectionPlanService().GetServiceCollectionPlanList(params.ServiceContractId) |
| | | serviceCollectionPlan, total, errCode := service.NewServiceCollectionPlanService().GetServiceCollectionPlanList(params.SourceType, params.SourceId) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "服务合同id", |
| | | "name": "serviceContractId", |
| | | "in": "query" |
| | | "name": "sourceId", |
| | | "in": "query", |
| | | "required": true |
| | | }, |
| | | { |
| | | "enum": [ |
| | | 1, |
| | | 2 |
| | | ], |
| | | "type": "integer", |
| | | "x-enum-comments": { |
| | | "CollectionSourceTypeSaleDetails": "销售明细", |
| | | "CollectionSourceTypeServiceContract": "服务合同" |
| | | }, |
| | | "x-enum-varnames": [ |
| | | "CollectionSourceTypeSaleDetails", |
| | | "CollectionSourceTypeServiceContract" |
| | | ], |
| | | "name": "sourceType", |
| | | "in": "query", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | |
| | | "percent": { |
| | | "description": "比例", |
| | | "type": "number" |
| | | }, |
| | | "principal": { |
| | | "description": "收款负责人ID", |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/model.User" |
| | | } |
| | | ] |
| | | }, |
| | | "principalId": { |
| | | "description": "收款负责人ID", |
| | |
| | | "description": "比例", |
| | | "type": "number" |
| | | }, |
| | | "principal": { |
| | | "description": "收款负责人ID", |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/model.User" |
| | | } |
| | | ] |
| | | }, |
| | | "principalId": { |
| | | "description": "收款负责人ID", |
| | | "type": "integer" |
| | |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "服务合同id", |
| | | "name": "serviceContractId", |
| | | "in": "query" |
| | | "name": "sourceId", |
| | | "in": "query", |
| | | "required": true |
| | | }, |
| | | { |
| | | "enum": [ |
| | | 1, |
| | | 2 |
| | | ], |
| | | "type": "integer", |
| | | "x-enum-comments": { |
| | | "CollectionSourceTypeSaleDetails": "销售明细", |
| | | "CollectionSourceTypeServiceContract": "服务合同" |
| | | }, |
| | | "x-enum-varnames": [ |
| | | "CollectionSourceTypeSaleDetails", |
| | | "CollectionSourceTypeServiceContract" |
| | | ], |
| | | "name": "sourceType", |
| | | "in": "query", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | |
| | | "percent": { |
| | | "description": "比例", |
| | | "type": "number" |
| | | }, |
| | | "principal": { |
| | | "description": "收款负责人ID", |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/model.User" |
| | | } |
| | | ] |
| | | }, |
| | | "principalId": { |
| | | "description": "收款负责人ID", |
| | |
| | | "description": "比例", |
| | | "type": "number" |
| | | }, |
| | | "principal": { |
| | | "description": "收款负责人ID", |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/model.User" |
| | | } |
| | | ] |
| | | }, |
| | | "principalId": { |
| | | "description": "收款负责人ID", |
| | | "type": "integer" |
| | |
| | | percent: |
| | | description: 比例 |
| | | type: number |
| | | principal: |
| | | allOf: |
| | | - $ref: '#/definitions/model.User' |
| | | description: 收款负责人ID |
| | | principalId: |
| | | description: 收款负责人ID |
| | | type: integer |
| | |
| | | percent: |
| | | description: 比例 |
| | | type: number |
| | | principal: |
| | | allOf: |
| | | - $ref: '#/definitions/model.User' |
| | | description: 收款负责人ID |
| | | principalId: |
| | | description: 收款负责人ID |
| | | type: integer |
| | |
| | | /api/serviceCollectionPlan/list: |
| | | get: |
| | | parameters: |
| | | - description: 服务合同id |
| | | in: query |
| | | name: serviceContractId |
| | | - in: query |
| | | name: sourceId |
| | | required: true |
| | | type: integer |
| | | - enum: |
| | | - 1 |
| | | - 2 |
| | | in: query |
| | | name: sourceType |
| | | required: true |
| | | type: integer |
| | | x-enum-comments: |
| | | CollectionSourceTypeSaleDetails: 销售明细 |
| | | CollectionSourceTypeServiceContract: 服务合同 |
| | | x-enum-varnames: |
| | | - CollectionSourceTypeSaleDetails |
| | | - CollectionSourceTypeServiceContract |
| | | produces: |
| | | - application/json |
| | | responses: |
| | |
| | | SalesRefund{}, |
| | | ServiceCollectionPlan{}, |
| | | Receipt{}, |
| | | ServiceOrder{}, |
| | | ) |
| | | return err |
| | | } |
| | |
| | | db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) |
| | | } |
| | | |
| | | err := db.Preload("Principal").Preload("Client").Find(&records).Error |
| | | err := db.Preload("Principal").Preload("Client").Preload("PaymentType").Preload("BankAccount").Find(&records).Error |
| | | return records, total, err |
| | | } |
| | | |
| | |
| | | package request |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/model" |
| | | ) |
| | | |
| | |
| | | } |
| | | |
| | | type GetServiceCollectionPlanList struct { |
| | | ServiceContractId int `gorm:"service_contract_id" form:"serviceContractId"` // 服务合同id |
| | | SourceType constvar.CollectionSourceType `json:"sourceType" form:"sourceType" binding:"required"` |
| | | SourceId int `json:"sourceId" form:"sourceId" binding:"required"` |
| | | } |
| | |
| | | SourceType constvar.CollectionSourceType `gorm:"column:source_type;type:tinyint;not null;default 0;comment:源单类型(1销售明细2服务合同3销售发票)" json:"sourceType"` // 源单类型(1销售明细2服务合同3销售发票) |
| | | SourceId int `gorm:"column:source_id;type:int;not null;default 0;comment:源单id" json:"sourceId"` // 源单id |
| | | PrincipalId int `gorm:"column:principal_id;type:int;not null;default 0;comment:收款负责人ID" json:"principalId"` // 收款负责人ID |
| | | Principal User `gorm:"foreignKey:PrincipalId" json:"principal"` // 收款负责人ID |
| | | Term int `gorm:"column:term;type:tinyint;not null;default 0;comment:期次" json:"term"` // 期次 |
| | | Percent decimal.Decimal `gorm:"column:percent;type:decimal(5,2);not null;default 0.00;comment:收款比例" gorm:"" json:"percent"` // 比例 |
| | | Amount decimal.Decimal `gorm:"column:amount;type:decimal(12,2);not null;default '0.00';comment:金额" gorm:"" json:"amount"` // 金额 |
| | |
| | | db = db.Where("source_id = ?", slf.SourceId) |
| | | } |
| | | |
| | | if slf.SourceType != 0 { |
| | | db = db.Where("source_type = ?", slf.SourceType) |
| | | } |
| | | |
| | | db = db.Preload("Client").Preload("Principal") |
| | | return db |
| | | } |
| | | |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ServiceCollectionPlanSearch) SetSourceType(sourceType constvar.CollectionSourceType) *ServiceCollectionPlanSearch { |
| | | slf.SourceType = sourceType |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ServiceCollectionPlanSearch) First() (*ServiceCollectionPlan, error) { |
| | | var db = slf.build() |
| | | var record = new(ServiceCollectionPlan) |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewBankAccountSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewBankAccountSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (BankAccountService) UpdateBankAccount(bankAccount *model.BankAccount) int { |
| | | err := model.NewBankAccountSearch().SetId(bankAccount.Id).Save(bankAccount) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewBankAccountSearch().SetId(bankAccount.Id).Update(bankAccount) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewCourierCompanySearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewCourierCompanySearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (CourierCompanyService) UpdateCourierCompany(courierCompany *model.CourierCompany) int { |
| | | err := model.NewCourierCompanySearch().SetId(courierCompany.Id).Save(courierCompany) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewCourierCompanySearch().SetId(courierCompany.Id).Update(courierCompany) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewFaqSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewFaqSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (FaqService) UpdateFaq(faq *model.Faq) int { |
| | | err := model.NewFaqSearch().SetId(faq.Id).Save(faq) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewFaqSearch().SetId(faq.Id).Update(faq) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewFaultTypeSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewFaultTypeSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (FaultTypeService) UpdateFaultType(faultType *model.FaultType) int { |
| | | err := model.NewFaultTypeSearch().SetId(faultType.Id).Save(faultType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewFaultTypeSearch().SetId(faultType.Id).Update(faultType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | } |
| | | |
| | | func (FileService) UpdateFile(file *model.File) int { |
| | | err := model.NewFileSearch().SetId(file.ID).Save(file) |
| | | err := model.NewFileSearch().SetId(file.ID).Update(file) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | amountInvoiced = amountInvoiced.Round(2) |
| | | amountNotInvoiced = amountNotInvoiced.Round(2) |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | err = model.NewInvoiceSearch().SetId(invoice.Id).Save(invoice) |
| | | err = model.NewInvoiceSearch().SetId(invoice.Id).Update(invoice) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | } |
| | | amountInvoiced = amountInvoiced.Round(2) |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | err = model.NewInvoiceSearch().SetId(invoice.Id).Save(invoice) |
| | | err = model.NewInvoiceSearch().SetId(invoice.Id).Update(invoice) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewInvoiceStatusSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewInvoiceStatusSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (InvoiceStatusService) UpdateInvoiceStatus(invoiceStatus *model.InvoiceStatus) int { |
| | | err := model.NewInvoiceStatusSearch().SetId(invoiceStatus.Id).Save(invoiceStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewInvoiceStatusSearch().SetId(invoiceStatus.Id).Update(invoiceStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewInvoiceTypeSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewInvoiceTypeSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (InvoiceTypeService) UpdateInvoiceType(invoiceType *model.InvoiceType) int { |
| | | err := model.NewInvoiceTypeSearch().SetId(invoiceType.Id).Save(invoiceType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewInvoiceTypeSearch().SetId(invoiceType.Id).Update(invoiceType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewPaymentTypeSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewPaymentTypeSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (PaymentTypeService) UpdatePaymentType(paymentType *model.PaymentType) int { |
| | | err := model.NewPaymentTypeSearch().SetId(paymentType.Id).Save(paymentType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewPaymentTypeSearch().SetId(paymentType.Id).Update(paymentType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewPriorityLevelSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewPriorityLevelSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (PriorityLevelService) UpdatePriorityLevel(priorityLevel *model.PriorityLevel) int { |
| | | err := model.NewPriorityLevelSearch().SetId(priorityLevel.Id).Save(priorityLevel) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewPriorityLevelSearch().SetId(priorityLevel.Id).Update(priorityLevel) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | } |
| | | } |
| | | err = model.WithTransaction(func(db *gorm.DB) error { |
| | | err = model.NewReceiptSearch().SetId(receipt.Id).Save(receipt) |
| | | err = model.NewReceiptSearch().SetId(receipt.Id).Update(receipt) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | package service |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/model" |
| | | "aps_crm/model/request" |
| | | "aps_crm/pkg/ecode" |
| | |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (ServiceCollectionPlanService) GetServiceCollectionPlanList(sourceId int) ([]*model.ServiceCollectionPlan, int64, int) { |
| | | list, total, err := model.NewServiceCollectionPlanSearch().SetSourceId(sourceId).Find() |
| | | func (ServiceCollectionPlanService) GetServiceCollectionPlanList(sourceType constvar.CollectionSourceType, sourceId int) ([]*model.ServiceCollectionPlan, int64, int) { |
| | | list, total, err := model.NewServiceCollectionPlanSearch().SetSourceType(sourceType).SetSourceId(sourceId).Find() |
| | | if err != nil { |
| | | return nil, 0, ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceCollectionPlanService) UpdateServiceCollectionPlan(serviceCollectionPlan *model.ServiceCollectionPlan) int { |
| | | err := model.NewServiceCollectionPlanSearch().SetId(serviceCollectionPlan.Id).Save(serviceCollectionPlan) |
| | | err := model.NewServiceCollectionPlanSearch().SetId(serviceCollectionPlan.Id).Update(serviceCollectionPlan) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewServiceContractStatusSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewServiceContractStatusSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceContractStatusService) UpdateServiceContractStatus(serviceContractStatus *model.ServiceContractStatus) int { |
| | | err := model.NewServiceContractStatusSearch().SetId(serviceContractStatus.Id).Save(serviceContractStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewServiceContractStatusSearch().SetId(serviceContractStatus.Id).Update(serviceContractStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceOrderService) UpdateServiceOrder(serviceOrder *model.ServiceOrder) int { |
| | | err := model.NewServiceOrderSearch().SetId(serviceOrder.Id).Save(serviceOrder) |
| | | err := model.NewServiceOrderSearch().SetId(serviceOrder.Id).Updates(serviceOrder) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewServiceOrderStatusSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewServiceOrderStatusSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceOrderStatusService) UpdateServiceOrderStatus(serviceOrderStatus *model.ServiceOrderStatus) int { |
| | | err := model.NewServiceOrderStatusSearch().SetId(serviceOrderStatus.Id).Save(serviceOrderStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewServiceOrderStatusSearch().SetId(serviceOrderStatus.Id).Update(serviceOrderStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewServiceTypeSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewServiceTypeSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceTypeService) UpdateServiceType(serviceType *model.ServiceType) int { |
| | | err := model.NewServiceTypeSearch().SetId(serviceType.Id).Save(serviceType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewServiceTypeSearch().SetId(serviceType.Id).Update(serviceType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewSeveritySearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewSeveritySearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (SeverityService) UpdateSeverity(severity *model.Severity) int { |
| | | err := model.NewSeveritySearch().SetId(severity.Id).Save(severity) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewSeveritySearch().SetId(severity.Id).Update(severity) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewTimeSpentSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewTimeSpentSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (TimeSpentService) UpdateTimeSpent(timeSpent *model.TimeSpent) int { |
| | | err := model.NewTimeSpentSearch().SetId(timeSpent.Id).Save(timeSpent) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewTimeSpentSearch().SetId(timeSpent.Id).Update(timeSpent) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | } |
| | | |
| | | func (WechatOrderStatusService) UpdateWechatOrderStatus(wechatOrderStatus *model.WechatOrderStatus) int { |
| | | err := model.NewWechatOrderStatusSearch().SetId(wechatOrderStatus.Id).Save(wechatOrderStatus) |
| | | err := model.NewWechatOrderStatusSearch().SetId(wechatOrderStatus.Id).Update(wechatOrderStatus) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |