// =========================================== // 多班级版班级管理系统 - Go 后端 // // 开发者: Canglan // 联系方式: admin@sea-studio.top // 版权归属: Sea Network Technology Studio // 许可证: Apache License 2.0 // // 版权所有 © Sea Network Technology Studio // =========================================== package service import ( "hz-gitea.sea-studio.top/canglan/SharedClassManager/internal/repository" ) // ConfigService 配置服务 type ConfigService struct { classRepo *repository.ClassRepo } // NewConfigService 创建配置服务 func NewConfigService(classRepo *repository.ClassRepo) *ConfigService { return &ConfigService{classRepo: classRepo} } // GetClassSettingValue 从 class_settings 读取设置值,若无则返回默认值 func (s *ConfigService) GetClassSettingValue(classID int, key, defaultVal string) string { if classID > 0 && s.classRepo != nil { setting, err := s.classRepo.GetSetting(classID, key) if err == nil && setting != nil && setting.SettingValue != "" { return setting.SettingValue } } return defaultVal } // GetDeductionRules 获取扣分规则(优先从 class_settings 读取班级级配置) func (s *ConfigService) GetDeductionRules(classID int) map[string]string { return map[string]string{ "DEDUCTION_ATTENDANCE_ABSENT": s.GetClassSettingValue(classID, "deduction_attendance_absent", "3"), "DEDUCTION_ATTENDANCE_LATE": s.GetClassSettingValue(classID, "deduction_attendance_late", "1"), "DEDUCTION_ATTENDANCE_LEAVE": s.GetClassSettingValue(classID, "deduction_attendance_leave", "0"), "STUDENT_INITIAL_POINTS": s.GetClassSettingValue(classID, "initial_points", "60"), "DEDUCTION_HOMEWORK_NOT_SUBMIT": s.GetClassSettingValue(classID, "deduction_homework_not_submit", "2"), "DEDUCTION_HOMEWORK_LATE": s.GetClassSettingValue(classID, "deduction_homework_late", "1"), } }