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 }