package service
|
|
import (
|
"aps_crm/constvar"
|
"aps_crm/model"
|
"aps_crm/model/request"
|
"aps_crm/pkg/ecode"
|
"gorm.io/gorm"
|
)
|
|
type ServiceCollectionPlanService struct{}
|
|
func NewServiceCollectionPlanService() ServiceCollectionPlanService {
|
return ServiceCollectionPlanService{}
|
}
|
|
func (ServiceCollectionPlanService) AddServiceCollectionPlan(serviceCollectionPlan []*model.ServiceCollectionPlan) int {
|
if len(serviceCollectionPlan) == 0 {
|
return ecode.ParamsErr
|
}
|
sourceId := serviceCollectionPlan[0].SourceId
|
err := model.WithTransaction(func(db *gorm.DB) error {
|
err := model.NewServiceCollectionPlanSearch().SetOrm(db).SetSourceId(sourceId).Delete()
|
if err != nil {
|
return err
|
}
|
err = model.NewServiceCollectionPlanSearch().SetOrm(db).CreateBatch(serviceCollectionPlan)
|
if err != nil {
|
return err
|
}
|
return nil
|
})
|
|
if err != nil {
|
return ecode.DBErr
|
}
|
|
return ecode.OK
|
}
|
|
func (ServiceCollectionPlanService) DeleteServiceCollectionPlan(id int) int {
|
err := model.NewServiceCollectionPlanSearch().SetId(id).Delete()
|
if err != nil {
|
return ecode.DBErr
|
}
|
return ecode.OK
|
}
|
|
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
|
}
|
|
return list, total, ecode.OK
|
}
|
|
func (ServiceCollectionPlanService) UpdateServiceCollectionPlans(ServiceCollectionPlans []*request.UpdateServiceCollectionPlan) int {
|
for _, v := range ServiceCollectionPlans {
|
// check ServiceCollectionPlan exist
|
_, err := model.NewServiceCollectionPlanSearch().SetId(v.Id).First()
|
if err != nil {
|
return ecode.DBErr
|
}
|
|
err = model.NewServiceCollectionPlanSearch().SetId(v.Id).Updates(map[string]interface{}{})
|
if err != nil {
|
return ecode.DBErr
|
}
|
}
|
|
return ecode.OK
|
}
|
|
func (ServiceCollectionPlanService) UpdateServiceCollectionPlan(serviceCollectionPlan *model.ServiceCollectionPlan) int {
|
err := model.NewServiceCollectionPlanSearch().SetId(serviceCollectionPlan.Id).Update(serviceCollectionPlan)
|
if err != nil {
|
return ecode.DBErr
|
}
|
return ecode.OK
|
}
|