package services import ( "ERP_salary/dto" db "ERP_salary/initialize" "ERP_salary/logs" models "ERP_salary/models/Performance" "errors" "gogs.baozhida.cn/zoie/ERP_libs/lib" "gorm.io/gorm" ) type PerformancePoints struct { } func (e *PerformancePoints) GetPage(c *dto.PerformancePointsPageReq) (list []models.PerformancePoints, cnt int64) { var err error err = db.DB.Model(&models.PerformancePoints{}). Scopes( dto.MakeCondition(c.GetNeedSearch()), dto.Paginate(c.GetPageSize(), c.GetPageIndex()), dto.WithNormalState(), ). Find(&list).Limit(-1).Offset(-1). Count(&cnt).Error if err != nil { logs.Error("db error: %s ", err) return } return } func (e *PerformancePoints) Get(Id int) (r models.PerformancePoints, err error) { err = db.DB.Scopes(dto.WithNormalState()).First(&r, Id).Error if err != nil { logs.Error("db error: %s", err) return } return } // 添加 func (e *PerformancePoints) Insert(c *dto.PerformancePointsInsertReq) (id int, err error) { var data models.PerformancePoints err = db.DB.Scopes(dto.WithNormalState()).Where("t_name = ?", c.T_name).First(&data).Error if err != nil { // 没有则创建 if errors.Is(err, gorm.ErrRecordNotFound) { c.Generate(&data) err = db.DB.Create(&data).Error if err != nil { logs.Error("db error: %s", err) return } id = data.Id return } logs.Error("db error: %s", err) return } id = data.Id return } // 修改 func (e *PerformancePoints) Update(c *dto.PerformancePointsUpdateReq) error { var performancePoints = models.PerformancePoints{} err := db.DB.Scopes(dto.WithNormalState()).First(&performancePoints, c.GetId()).Error if err != nil { logs.Error("db error: %s", err) return dto.GetNotFoundErr } c.Generate(&performancePoints) err = db.DB.Save(&performancePoints).Error if err != nil { logs.Error("db error: %s", err) return dto.UpdateFailedErr } return nil } // 删除 func (e *PerformancePoints) Delete(c *dto.PerformancePointsDeleteReq) error { var performancePoints = models.PerformancePoints{} err := db.DB.Scopes(dto.WithNormalState()).First(&performancePoints, c.GetId()).Error if err != nil { logs.Error("db error: %s", err) return dto.GetNotFoundErr } var ServiceItemCount int64 err = db.DB.Model(&models.PerformancePoints{}). Scopes(dto.WithNormalState()). Where("t_service_type_id = ?", performancePoints.Id). Count(&ServiceItemCount).Error if err != nil { logs.Error("db error: %s", err) return dto.GetFailedErr } if ServiceItemCount > 0 { return errors.New("存在已关联的服务内容,无法删除!") } performancePoints.T_State = 0 err = db.DB.Save(&performancePoints).Error if err != nil { logs.Error(lib.FuncName(), err) return dto.DeleteFailedErr } return nil }